Git 基本命令

Git 用了接近一年了,總結(jié)一下

IT TianSir

  • 取項(xiàng)目
git clone http://... 將項(xiàng)目克隆到本地(該項(xiàng)目會(huì)放在當(dāng)前目錄下)
  • 查看
git branch 查看本地分支
git branch -r 查看遠(yuǎn)程分支
git branch -a 查看所有分支
git status 查看當(dāng)前分支的工作狀態(tài),比較暫存區(qū)和head文件的差異
  • 切換分支
git checkout branchname 切換到branchname分支
git checkout -t -b production origin/production 從遠(yuǎn)程分支切一個(gè)分支出來,并切換到該分支,此時(shí)該分支與對(duì)應(yīng)遠(yuǎn)程分支是一致的
git checkout -b fixbug/tianjian-production 從當(dāng)前分支的基礎(chǔ)上切一個(gè)分支出來,此時(shí)該分支與之前原分支是一致的
  • 刪除分支
git branch -d | -D branchname 刪除本地分支branchname
git branch -d | -D -r branchname 刪除遠(yuǎn)程分支branchname
  • 暫存
git stash 將當(dāng)前的更改暫存起來(Boss突然讓你去正式環(huán)境修改緊急bug,此時(shí)暫存很有用)
git stash pop 將暫存的內(nèi)容放出來
  • 提交
git add . 將當(dāng)前的修改添加到暫存區(qū)
git commit -m '' 將更改提交到暫存區(qū)
git push origin branchname 將代碼推到遠(yuǎn)程branchname分支
  • 撤銷
git checkoout . 撤銷當(dāng)前的更改
git reset --hard commit_id 撤銷提交
  • 更新
git pull 從遠(yuǎn)程將代碼更新到本地分支
  • 合并A分支到B分支
git checkout B 切換到B分支
git merge A 將本地A分支合到當(dāng)前分支
此時(shí)A分支的代碼就已經(jīng)合到B分支了,完成了歷史使命,可以放心的將其刪除git branch -d A
  • 基本步驟
git status 取代碼前看下是否有更改未提交
git pull 更新代碼
敲代碼
git status 查看是否是自己修改過的文件
git add . 將當(dāng)前更改添加到暫存區(qū)
git commit -m 'beizhu' 提交更改
git push origin branchname 將代碼推到遠(yuǎn)程
  • 基本的GIT工作流程
在工作目錄中修改某些文件
對(duì)修改后的文件進(jìn)行快照,然后保存到暫存區(qū)域
提交更新,將保存在暫存區(qū)域的文件快照永久的轉(zhuǎn)存到git目錄中
  • 合并沖突
<<<<<HEAD
修改1
=========
修改2
>>>>>feature1
<<<<<HEAD表示主分支,主分支的修改是修改1,>>>>>feature1表示當(dāng)前分支,當(dāng)前分支的修改是修改2,手動(dòng)解決沖突之后,重新提交
  • 文件狀態(tài)
已提交(committed),已提交表示該文件已經(jīng)被安全地保存在本地?cái)?shù)據(jù)庫中了
已修改(modified),已修改表示修改了某個(gè)文件,但還沒有提交保存
已暫存(staged),已修改的文件放在下次提交時(shí)要保存的清單中。
  • 個(gè)人理解流程
1,git checkout -b production -t origin/production
創(chuàng)建一個(gè)本地分支,該本地的分支production 與 遠(yuǎn)程分支 origin/production的代碼是同步的.
本地分支取名production 只是為了便于自己記憶對(duì)應(yīng)的是哪一個(gè)遠(yuǎn)程分支。如果你記憶牛逼的話,取asdfdasddfvdf 這樣亂七八糟的名字也是可以的.
git pull就表示從遠(yuǎn)程分支把代碼拉下來,使本地分支的代碼與遠(yuǎn)程分支的代碼同步。
git push 就是將本地的代碼推到遠(yuǎn)程分支,使遠(yuǎn)程的分支與本地分支代碼同步。(有的公司在生產(chǎn)分支,git push時(shí),為了防止代碼的胡亂提交,會(huì)設(shè)置權(quán)限,此時(shí)我們就要?jiǎng)?chuàng)建一個(gè)自己的分支,使它的代碼與本地production分支的一致。然后再請(qǐng)求有權(quán)限的人將origin/hotfix/tianjian-propm與origin/production合并,production就相當(dāng)于一個(gè)中轉(zhuǎn)站一樣。)
2,git checkout production (切換到production分支,拉代碼)
3,git pull (保持production分支與origin/production的同步)
4,git checkout -b hotfix/tianjian-propm 然后從本地分支創(chuàng)建自己的分支,hotfix/tianjian-propm,名字同樣也是為了記憶方便,
5,git merge production(將production分支的代碼合并到自己的分支,使自己的分支與production分支的代碼同步,因?yàn)閜roduction分支與origin/production分支已經(jīng)同步,所以此時(shí),origin/production, production, hotfix/tianjian-propm,三個(gè)分支是同步的)
在hotfix/tianjian-propm分支修改代碼,然后提交 (提交只是將代碼提交到本地的hotfix/tianjian-propm分支,)
git push origin hotfix/tianjian-propm 將本地的分支提交到遠(yuǎn)程對(duì)應(yīng)的分支,首次git push時(shí),會(huì)自動(dòng)創(chuàng)建這樣一個(gè)對(duì)應(yīng)的遠(yuǎn)程分支,
請(qǐng)求有權(quán)限的人將 遠(yuǎn)程的 origin/hotfix/tianjian-propm合并到 origin/production,合并完成后,此時(shí)origin/production的代碼就是最新的,同樣再去production分支拉代碼,然后在合到hotfix/tianjian-propm,保持三個(gè)分支的代碼保持一致。
提交產(chǎn)生沖突時(shí),去production分支將最新的代碼拉下來,然后合并到hotfix/tianjian-propm,gss命令查看,產(chǎn)生沖突的文件,手動(dòng)修改沖突,然后和修改代碼一樣走一次流程。
  • 大法
1,盡量在自己的分支上開發(fā),靈活性,機(jī)動(dòng)性高
2,若是做了什么不可逆的操作,不要慌,直接將這個(gè)分支刪掉,再切一個(gè)分支就好,哈哈
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容