Git版本控制
Git中大部分操作都是針對本地文件和本地?cái)?shù)據(jù)庫,只有在我們平時執(zhí)行類似克隆(clone)拐云、pull罢猪、push等命令時才與遠(yuǎn)程服務(wù)器交互。這樣對于開發(fā)維護(hù)代碼庫就很安全叉瘩,因?yàn)橐坏┻h(yuǎn)程服務(wù)器代碼丟失仍然可以將本地代碼上傳到服務(wù)器膳帕;也會給開發(fā)者帶來諸多方便,因?yàn)閷⑦h(yuǎn)程代碼取到本地后可以隨意的修改薇缅,一旦修改混亂之后仍然可以恢復(fù)到以前版本危彩,即使本地代碼被誤刪除仍然可以重新從服務(wù)器取回代碼。
下面將針對一些常用使用命令和技巧進(jìn)行介紹:
一泳桦、git提交規(guī)范
在commit是,如果有對應(yīng)PR汤徽,請?jiān)诘谝恍袑懮螾R號,然后再描述信息(另起行)灸撰,并把涉及到改動的文件名附上.
具體操作如下(不用git commit -m填寫說明):
1泻骤、如果提交全部文件(請先git status確認(rèn)是否要提交所有改動)
1.1git commit -a
1.2在打開的編輯器中(默認(rèn)為VIM)第一行 填寫PR號(頂格寫,多個PR用逗號隔開梧奢,要寫全)狱掂,然后再寫說明。
1.3把涉及修改文件路徑前的#去掉,就會提交亲轨,不用手工輸入文件路徑趋惨。
1.4然后ESC輸入:wq退出VIM.
2、如果提交部分文件
2.1分別git add要提交的所有文件惦蚊。
2.2 git commit器虾。
2.3以后步驟同上讯嫂。
二、第一次初始配置
1兆沙、第一次取出代碼到本地需要克隆代碼(從服務(wù)器取代碼到本地)欧芽,一般如果新建一個本地代碼庫都需要重新克隆一次代碼。
命令:git clone git://服務(wù)器代碼庫地址
2葛圃、第一次使用git環(huán)境一般應(yīng)該配置你的用戶信息千扔,這樣會方便別人與自己查看git提交代碼記錄。
命令:$ git config --global user.name zhangsan
$ git config --global user.emailzhang.san@zte.com.cn
這里使用的—global库正,以后的所有項(xiàng)目都默認(rèn)使用這個配置曲楚,這時寫入的是用戶主目錄的git配置文件(跟曲以鵬在郵件里邊說的那個“.gitconfig”文件應(yīng)該是一回事),如果想改變其中一個項(xiàng)目的配置可以去掉—global重新配置如:
命令:$ git config user.name lisi
查看這些配置信息褥符,如:
命令:$ git config --list
3龙誊、修改編輯器,一般我們在git commit(提交)后喷楣,需要添加PR號或者添加注釋信息趟大,對于編輯可以選用自己習(xí)慣的編輯器如:vi
命令:$ git config --global core.editor vi
三、提交代碼(這部分只是針對本地代碼庫铣焊,所有操作都沒有涉及服務(wù)器)
1护昧、提交代碼過程大家都非常熟悉,平時常用幾種命令粗截,如:
$ git add file–> $ git commit或者 全部提交:$ git commit–a
當(dāng)中可能經(jīng)常使用如$ git status查詢狀態(tài)、$ git diff比較不同捣炬。
下面總結(jié)了一些以上過程中比較熊昌、撤銷等好用命令。
2湿酸、本地操作代碼庫狀態(tài)
本地操作后婿屹,本地代碼庫會有三種狀態(tài):修改、暫存推溃、提交昂利。
Git add后就從修改變?yōu)闀捍妫琯it commit后就從暫存變?yōu)樘峤弧?/p>
1)铁坎、各個狀態(tài)比較命令如:
修改與暫存比較不同:$ git diff <文件路徑>
暫存與上次提交比較不同:$ git diff --cached <文件路徑>
2)蜂奸、將文件從暫存移除變?yōu)樾薷臓顟B(tài),一般git add后發(fā)現(xiàn)添加文件多了硬萍,可以使用命令如:
$ git reset HEAD
3)扩所、修改提交文件,代碼提交以后會產(chǎn)生一個哈希值類似(a124b9da6552252987aa493b52f8696cd6d3b003)一字符串朴乖,以后可以根據(jù)哈希值回到相應(yīng)版本祖屏。
對于剛剛提交的代碼很容易忘記寫注釋(PR)或者漏提交了部分文件助赞,這時可以使用命令修改上次的提交:$git commit --amend
如果添加注釋可以直接執(zhí)行命令,填寫注釋保存袁勺。
如果添加文件先執(zhí)行$ git add后 執(zhí)行$git commit –amend
3雹食、查看以前提交情況
1)、查看某人提交日志
命令:$ git log--author=zengyun
2)期丰、搜索提交日志(根據(jù)第一行的PR號)
命令:$git log --grep=PR000667740
這里邊的PR號一定在第一行寫群叶,如果多個PR號請用‘,’隔開咐汞。具體請參考git提交規(guī)范盖呼。
3)、查看某文件夾log
命令:$git log ?framework/base/core/java/android/
4)化撕、查看每次提交信息
命令:$git log-p-2
-2表示最近兩次提交几晤。
5)、查看某次提交的詳細(xì)信息
命令:$git show5ba47ce9ceb4c5db86563c03c6833ee47bd22a53
6)植阴、如果精確查找顯示可以將上面1)蟹瘾、2)、3)掠手、4)組合使用憾朴。
四、遠(yuǎn)程服務(wù)器取喷鸽、推代碼众雷。(與服務(wù)器交互)
前面提過克隆命令:git clone git://服務(wù)器,它實(shí)現(xiàn)過程實(shí)際上是創(chuàng)建本地分支master做祝,并且去服務(wù)器代碼到本地砾省。
1、取代碼從服務(wù)器命令:$ git pull
2混槐、推代碼到服務(wù)器命令:$ git push
在主分支下编兄,不用指定分支名稱,系統(tǒng)會默認(rèn)為pull主分支声登。
五狠鸳、切換到分支下工作
目前各種定制越來越多,作為使用者如何直接進(jìn)入分支悯嗓,開展我們的開發(fā)工作件舵。下面以印度分支為例進(jìn)行說明:
1、克隆代碼脯厨,
命令:git clone git://192.168.1.231/home/android/workspace/App7627_5330
注:(如果本地有代碼則沒有此步)
2芦圾、確定當(dāng)前分支所在 ,
命令:git branch
例如:
Inida_MMX
* master
表示當(dāng)前所在分支是主分支master
3俄认、如果第一次克隆代碼个少,使用git branch查詢時候發(fā)現(xiàn)只有master分支洪乍,在切換到India_MMX分支時候,
需要執(zhí)行命令:git checkout origin/India_MMX
之后會有提示夜焦,然后再執(zhí)行下面命令:git checkout -b India_MMX
4壳澳、 如果印度分支已經(jīng)存在,具體方法如下:
命令:git checkout India_MMX
六茫经、分支下常用命令
1巷波、pull代碼
命令:git pull origin India_MMX
push提交代碼
命令:git push origin India_MMX
2、切換到主分支
命令:git checkout master
如果切換的過程出現(xiàn)merge失敗卸伞,使用$ git status命令查看哪些文件不能merge抹镊,之后手動merge。
3荤傲、查看所有分支(服務(wù)器與本地)
命令:$ git branch–a
4垮耳、查看當(dāng)前分支下最新提交信息
命令:$ git branch–v