1. 程式人生 > >Git 從入門到精通(常用命令解析)(一)

Git 從入門到精通(常用命令解析)(一)

大學的時候就一直在用git了,不過直到現在公司才切git,所以,重新學習記錄下。

一,git add 命令。

$git add <檔名>       //將檔案提交到本地倉庫。
$git add .             //他會監控工作區的狀態數,使用該命令會把工作時的所有變化提交到暫存區。包括modified以及new檔案。不包括被刪除的檔案。
$git add -u            //他僅監控以及被add的檔案(即tracked file),他會將被修改的檔案提交到暫存區。 不包括新檔案。(git add -update縮寫)
$git add -A            //是上面兩個命令的合集(git add -all的縮寫)

二,git commit

$git commit -m "你的註釋"    //新增檔案到本地git倉庫
$git diff <檔名>   //檢視具體修改了什麼內容
$git log //檢視歷史提交記錄,以便確定要回退到哪個版本。
$git reflog //檢視歷史命令,以便確定要回到未來的哪個版本。

再git中,用HEAD表示當前版本,上一個版本是HEAD^,上上個版本可以就是HEAD^^。如果很多,可以寫HEAD~100。
回退版本命令:git reset -hard HEAD^

原理:git有工作區,暫存區,以及當前分支。並且git跟蹤管理的是修改,並非檔案。所以每次修改後,如果沒有add到暫存區,就不會加入到commit中。
git add,實際上就是把檔案修改新增到暫存區。
git commit 實際上就是把暫存區的所有內容提交到當前分支。

三,git checkout
git checkout可以用來切換分支,但是一般主要是撤銷修改。

git checkout - <file> //其實就是用版本庫裡的版本替換工作區的版本,無論工作區是修改還是刪除,都可以意見還原。

分兩種情況:
1,file自修改後還沒有放到暫存區,現在,撤銷修改就回到和版本庫一樣。
2,file修改後已經新增到暫存區,又做了修改。現在,撤銷修改就回到新增到暫存區後的狀態。
3,git reset HEAD file 可以把暫存區的修改撤銷掉,重新放回工作區。

checkout檔案層面的操作:主要是對暫存區和工作區起作用,一般有暫存區覆蓋工作區的行為特徵。
reset檔案層面的操作:主要對暫存區起作用。

用check命令如果切換分支呢?

git checkout -b dev //建立分支dev 並切換到dev,相當於git branch dev,git checkout dev 兩條命令。
git checkout dev //切換分支到dev。

四,git push 詳解。
在使用git之前,你首先要關聯一個遠端庫

$git remote add origin [email protected]:path/repo-name.git.

管理遠端倉庫後,就可以把原生代碼推送到遠端, 一般第一次提交可以使用
$git push -u origin master :第一次提交後後面可以省略“-u“。

$git push origin master :熟悉的命令

詳解
1,git push 命令用於將本地分支的更新,推送到遠端主機。
原始命令:git push <遠端主機名> <本地分支名>:<遠端分支名>
如果省略遠端分支名,則表示將本地分支推送與之存在“追蹤關係”的遠端分支(通常兩者同名)。
git push origin master:表示將本地的master分支推送到origin主機的master分支。如果後者不存在,則會建立。
如果省略本地分支名,則表示刪除指定的遠端分支,因為這等同於推送一個空的本地分支到遠端分支。

如果當前分支與多個主機存在追蹤關係,則可以使用-u選項指定一個預設主機,這樣後面就可以不加任何引數,使用git push。

五,git remote 詳解。
為了便於管理,git要求每個遠端主機都必須指定一個主機名。
git remote用於管理主機名。
git remote :會列出所有遠端主機。
git remote -v:可以檢視遠端主機的網址。
git remote show <主機名> :可以檢視該主機的詳細資訊。
git remote add <主機名,也可以理解別名> <網址>:用於新增遠端主機。
git remote rm <主機名> :用於刪除遠端主機。
git remote rename <原主機名> <新主機名> :用於遠端主機的改名。

在克隆版本庫的時候,所使用的遠端主機會自動的被git命名為origin。如果想使用其他的主機名(包括新增主機名時)。
如果克隆時想使用其他主機名,需要git clone命令 -o選項指定。
$git clone -o jQuery <地址>

$git remote
jQuery//此時,遠端主機名為jQuery

六,git fetch詳解。
一旦遠端主機的版本庫有了更新(git術語叫做commit),需要將這些更新取回本地,這時就要用到git fetch命令。
$git fetch <遠端主機名>:表示將某個遠端主機的更新,全部取回本地。

預設情況下,git fetch取回所有分支(branch)的更新。如果只想取回特定分支的更新,可以指定分支名。

$git fetch <遠端主機名> <分支名>

$git fetch origin master:取回origin主機的master分支。

git fetch只是取回分支更新,但是沒有和本地分支合併。
$git merge origin/master 將遠端主機origin的更新合併本地master。

七,git pull詳解。
git pull 命令的作用是,取回遠端主機某個分支的更新,再與本地的指定分支合併,它的完整格式稍稍有點複雜。

$git pull <遠端主機名> <遠端分支名>:<本地分支名>

比如,取回origin主機的next分支,與本地的master分支合併,需要寫出下面這樣:

$git pull origin next:master

如果遠端分支是與當前分支合併,則冒號後面的部分可以省略。

$git pull origin next
上面的命令表示,取回origin/next 分支,再與當前分支合併。實質上,這等同於先做git fetch,在做git merge。

$git fetch origin

$git merge origin/next

在某些場合,git會自動在本地分支與遠端分支之間,建立一種追蹤關係(tracking)。 比如,在git clone的時候,所有本地分支預設與遠端主機的同名分支,建立追蹤關係,也就是說,本地的master分支自動追蹤origin/master分支。git也允許手動建立追蹤關係。

$git branch -set-upstream master origin/next

上面命令指定master分支追蹤origin/next 分支。
如果當前分支與遠端分支存在追蹤關係,git pull就可以省略遠端分支名。

$git pull 

上面命令表示,當前分支自動與唯一一個追蹤分支進行合併。
如果合併需要採用rebase模式,可以使用-rebase選項。

相關推薦

Git 入門精通常用命令解析

大學的時候就一直在用git了,不過直到現在公司才切git,所以,重新學習記錄下。 一,git add 命令。 $git add <檔名> //將檔案提交到本地倉庫。 $git add . //他會監控工作區的狀

Linux常用命令解析圖解ls

Linux常用命令解析(圖解ls) (作者:Baron_wu) ls :顯示當前目錄下的檔案 Ls -a:顯示當前目錄下的所有檔案(包括隱藏檔案) Ls -l:以單獨一列顯示內容列表(列出許可權,所有者及其他資訊) Ls -ls:按檔案大小排序檔案內容 Ls -lar:以相反

樹莓派入門常用命令

sudo passwd root #輸入兩遍密碼後再輸入以下命令 sudo passwd --unlock root ls #目錄 lsusb #顯示usb裝置 cd #根目錄 cd - #返回進入此目錄之前的目錄 cd .. #返回上級 cd ../.. #返回

Git入門精通01

一、git到底是什麼,有什麼作用?   1.根據百度百科的解釋,Git(讀音為/gɪt/)是一個開源的分散式版本控制系統,可以有效、高速的處理從很小到非常大的專案版本管理。說白了就是一個免費軟體,當多人開發一個專案時公共資源,用於管理程式碼的工具。   2.版本控制器除git外還有cvs和svn,早期cv

Git 常用命令詳解

      一、 Git 命令初識 在正式介紹Git命令之前,先介紹一下Git 的基本命令和操作,對Git命令有一個總體的認識 示例:從Git 版本庫的初始化,通常有兩種方式: 1)git clone:這是一種較為簡單的初始化方式,當你已經

Git-學習筆記常用命令集合

 這裡引用一下百度百科裡Git的內容: Git --- The stupid content tracker, 傻瓜內容跟蹤器。Linus Torvalds 是這樣給我們介紹 Git 的。 Git 是用於 Linux核心開發的版本控制工具。與常用的版本控制工具 CVS, Subversion 等不同,

git常用命令解析

為每一臺電腦配置身份資訊 $ git config --global user.name "Your Name" $ git config --global user.email "[email&#

git 和 phabricator arc 常用 命令解析

git: git add . // stage 所有檔案(如果有刪除的不行) git add - -all // stage所有檔案,包括新新增的和刪除的 git commit -am "xx

Git 入門到熟練|不敢說精通

前言 如果有一定版本管理軟體基礎或使用過 svn 的你,這篇 git 的文章應該是最適合你的。作者也是從 svn 過來,從開始的覺得 git 麻煩,到最後還是感覺 git 是最好用的版本控制軟體。 雖然,大部分情況下,IDEA 已經對 Git 相容特別好;可以完成大部分的 Git 的提交,push ,合併等操

Linux常用命令及操作第二彈

linux home .gz 紅旗 關閉 linu tty 歸檔文件 過程 Ctrl l清屏 Ctrl d關閉終端 Ctrl Alt T打開終端 pwd 查看當前的目錄 Shift Ctrl C復制 Shift Ctrl V粘貼 Shift Ctrl N打開新的終端 F1

linux常用命令匯總更新中...

文本查看 ... lan 指定 編輯命令 顯示 查看文件內容 屏幕 一個 文本查看與編輯 1、文本編輯命令 vi/vim 2、查看文件內容命令 命令 說明 命令格式 參數 cat 將一個文件的內容連續輸出在屏幕上 cat [-option] 文件名 -n:將行號

centos7常用命令大全

centos7常用命令管理centos服務器的時候常會對文件進行一些常規操作,除了ftp之外了解在ssh下必要的文件操作命令那也是必不可少的,以下摘錄一些常用的文件操作命令:文件操作: ls ####查看目錄中的文件#### ls -F ####查看目錄中的文件#### ls -l ####顯示文件和目錄的詳

python學習——day12MySQL常用命令,連接pythonalex:http://www.cnblogs.com/wupeiqi/articles/5713330.html

www base drop cal esc username prim ber .com MySQL mysql 常用命令 MySQL創建、刪除數據庫 1 create database alexdb;#創建數據庫 2 3 drop database alexdb;

虛擬機的腳本常用命令

指定路徑 所有 工作模式 有關 刪除 class 運行 停止 fig su 切換用戶clear 清屏ifconfig 查看網絡連接ifconfig 網卡名 down 關閉網卡ifconfig 網卡名 up 啟用網卡dhclient 網卡名 自動獲取I

Python編程:入門到實踐——【作業】——第十測試代碼

stc 增加 收集 得到 width .com ast 接受 ted 第十一章 11-1 城市和國家 : 編寫一個函數, 它接受兩個形參: 一個城市名和一個國家名。 這個函數返回一個格式為City, Country 的字符串, 如Santiago, Chile 。 將這個函

Git入門到速成

有時 大神 merge 必須 更改 提示 團隊 怎麽學 change 什麽是Git Git是Linux發明者Linus開發的一款新時代的版本控制系統,那什麽是版本控制系統呢?怎麽理解?網上一大堆詳細的介紹,但是大多枯燥乏味,對於新手也很難理解,這裏我只舉幾個例子。 熟悉編程

git 的基本用法和常用命令

pst js文件 reset html 登陸 git倉庫 配置 php onf Git常用命令 請確保已經安裝裏git客戶端 一般配置 git --version //查看git的版本信息 git config --global user.name //獲取當

Git工作中用到的--常用命令,不斷更新

宣告:剛開始學習接觸Git ,有許多問題,不足還問題,歡迎指出,不斷更新。 git add . :將本地所有改動資料,提交到快取區。注意add 後面是. 表示所有 git commit -m "提交修改內容標題"  提交檔案到本地倉庫    注:可以使用 :

linux基礎常用命令

ls:檢視當前目錄下的所有檔案以及資料夾 ls /資料夾名稱  檢視該資料夾下面的所有檔案以及資料夾 ls -a 檢視隱藏檔案 (檔案以"."開頭的為隱性檔案) ls  * 表示o個或者多個字元  ;  ? 表示一個字元(必須有) &nb

maven介紹作用,核心概念,用法,常用命令,擴張及配置

maven介紹(作用,核心概念,用法,常用命令,擴張及配置) maven作用,核心概念(pom,repositories,artifact,build lifecycle,goal),用法(archetype意義及建立各種專案),maven常用引數和命令以及簡單故障排除 1、maven的作用 &