Git使用手冊(cè)

Git常用命令

常用全局配置

配置用戶信息

要配置成自己的真實(shí)用戶名(姓名全拼)和郵箱

git config --global user.name "John Doe"

git config --global user.email "johndoe@example.com"

配置別名

比如git checkout通過配置別名,可以使用git co來達(dá)到git checkout的效果

git config --global alias.co checkoutgit config --global alias.br branchgit config --global alias.ci commitgit config --global alias.st status

配置編輯器vim

git config --global core.editor vim

配置代碼合并工具

git config --global merge.tool vimdiff

配置高亮顯示

git config --global color.ui true

git config --global color.status auto

git config --global color.branch auto

查看所有配置

git config --list

下載代碼

git clone https://github.com/libgit2/libgit2

如果要指定某個(gè)分支翎嫡,則加上-b參數(shù)

git clone https://github.com/libgit2/libgit2? -b<branch name>

分支操作

git branch new_branch# 創(chuàng)建一個(gè)名為new_branch的分支git checkout -t remote/branch_name# 創(chuàng)建本地branch_name分支,并且跟蹤遠(yuǎn)端倉庫的同名分支git branch -D branch_name# 刪除本地分支git push remote :branch_name# 刪除遠(yuǎn)端remote倉庫的名為branch_name的分支git checkout branch# 從一個(gè)分支切到另一個(gè)分支具伍,注意此分支必須是已經(jīng)有的分支

修改代碼并提交

代碼修改后圈驼,可以通過如下命令將修改的代碼標(biāo)記為track狀態(tài)(可根據(jù)實(shí)際情況選擇其中一條或者多條命令)。

git add # 添加修改的文件绩脆,多個(gè)文件則用空格隔開。也可以是目錄靴迫。git mv # 重命名文件git rm # 刪除文件git rm -r # 刪除目錄

將標(biāo)記為track狀態(tài)的文件提交

git commit# 提交修改,該命令會(huì)調(diào)用編輯器用于書寫log信息矢劲。也可使使用git commit -m "commit messages"

提交代碼到遠(yuǎn)程倉庫

需要根據(jù)實(shí)際情況選擇如下其中一條命令提交代碼

git push remote HEAD:refs/for/branch#如果git是gerrit倉庫慌随,則必須使用此命令提交評(píng)審。其中remote為遠(yuǎn)端倉庫名阁猜,需要替換為實(shí)際名稱。branch需要替換為實(shí)際分支名剃袍。git push# 如果本地分支已經(jīng)配置為跟蹤遠(yuǎn)程分支(比如:git co -t sunniwell/develop),可以直接使用git push憔维。git push remote branch# remote 表示遠(yuǎn)程倉庫名稱,branch表示分支名稱业扒。此命令只適用于本地倉庫與遠(yuǎn)程倉庫同名的情況git push remote local_branch:remote_branch#該命令適用于本地倉庫和遠(yuǎn)程倉庫不同名的情況

回退代碼

回退代碼會(huì)用到git的reset和checkout兩個(gè)指令:

git reset是把本地代碼回退掉,要切到最新程储,則需要通過git pull拉取服務(wù)器上的最新代碼;一般只有在需要永遠(yuǎn)放棄某些修改的情況下章鲤,才使用git reset命令。

git checkout是切到過去的時(shí)間點(diǎn)帚呼,還可以切換來。相當(dāng)于切到了一個(gè)新的分支萝挤,還可以切換原來分支根欧。

注意,本節(jié)的示例中的所有git reset都可以可以換成git checkout凤粗。

將代碼回退到三天前

$ git log --before="3 days"-1 --pretty=format:"%H"619ee7a53952d4c94270aa39e9ecdf9ac3aca473$ git reset --hard 619ee7a53952d4c94270aa39e9ecdf9ac3aca473

也可以合起來用:

git log --before="3 days"-1 --pretty=format:"%H"|xargs git reset --hard

回退代碼到某一天

git log --before="2013-10-10"-1 --pretty=format:"%H"|xargs git reset --hard

回退代碼到某一天的某個(gè)時(shí)間點(diǎn)

git log --before="2013-10-10 09:15:00 +0800"-1 --pretty=format:"%H"|xargs git checkout# 其中 +0800 表示東八區(qū)時(shí)間

查看某個(gè)時(shí)間段的日志

git log --since="2013-10-10 09:15:00 +0800"--before="2013-10-10 23:59:00 +0800"

將服務(wù)器代碼回退到某個(gè)點(diǎn)并提交到某個(gè)分支(服務(wù)器回退不可恢復(fù),確保準(zhǔn)確后回退嫌拣,做好備份)

git reset --hard commit_id git push --force sunniwell base

按日期查看log

git log --after="20180504"--before="20180601"

合并分支

合并分支前提是需要相同SDK中的不同分支。

把另外一個(gè)分支的所有修改快速合并捶索。并提交到一個(gè)分支上

git merge --no-ff

把另外一個(gè)分支的單個(gè)commit 合并到當(dāng)前分支,并提交單個(gè)分支腥例,有沖突查看“HEAD”關(guān)鍵字

git cherry-pick

解決沖突

合并分支時(shí)難免會(huì)產(chǎn)生沖突酝润。沖突發(fā)生后分為如下兩種情況進(jìn)行處理:

文本文件沖突可以通過git mergetool命令編輯沖突文件;

二進(jìn)制文件沖突 時(shí)就無法合并了要销,要么使用被合并分支的該文件,要么就采用當(dāng)前分支的該文件疏咐。

比如倉庫下面的“path/lib_file.so”沖突了。則可以通過如下命令選擇采用哪個(gè)分支的文件:

git show branch_name:path/lib_file.so > path/lib_file.so#命令中的第一個(gè)path/lib_file.so必須是對(duì)應(yīng)的git倉庫根目錄的路徑借跪,第二個(gè)path/lib_file.so則是當(dāng)前目錄的相對(duì)路徑。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末垦梆,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子托猩,更是在濱河造成了極大的恐慌,老刑警劉巖京腥,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件公浪,死亡現(xiàn)場(chǎng)離奇詭異他宛,居然都是意外死亡欠气,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門队塘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人宜鸯,你說我怎么就攤上這事『枋校” “怎么了?”我有些...
    開封第一講書人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵即碗,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我烙样,道長(zhǎng)冯遂,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任壁却,我火速辦了婚禮,結(jié)果婚禮上展东,老公的妹妹穿的比我還像新娘炒俱。我一直安慰自己爪膊,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開白布推盛。 她就那樣靜靜地躺著谦铃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪驹闰。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,190評(píng)論 1 299
  • 那天师妙,我揣著相機(jī)與錄音屹培,去河邊找鬼。 笑死惫谤,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的溜歪。 我是一名探鬼主播若专,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼调衰,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了嚎莉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤趋箩,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后加派,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡芍锦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年娄琉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吓歇。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片票腰。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖丧慈,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情逃默,我是刑警寧澤,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布软吐,位于F島的核電站,受9級(jí)特大地震影響凹耙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜肠仪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一异旧、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧吮蛹,春花似錦、人聲如沸潮针。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至雳攘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間吨灭,已是汗流浹背刑巧。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來泰國打工无畔, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留浑彰,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓郭变,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親诉濒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354