一個(gè)簡單的工作流程
新人小明剛?cè)肼?,進(jìn)了某個(gè)項(xiàng)目組。熟悉了一段時(shí)間后,產(chǎn)品來需求了,需要小明在項(xiàng)目中單獨(dú)開發(fā)一個(gè)新功能。那么,從加入項(xiàng)目到完成開發(fā),小明應(yīng)該怎樣使用 Git 呢?
基本流程如下:
- 配置公鑰(配置詳情請自行搜索);
- 克隆項(xiàng)目到本地;
- 從 master 分支上切個(gè) dev 分支,dev 分支用于協(xié)作開發(fā);
- 從 dev 分支上切個(gè)新功能分支 feature/learn-git ,此分支用來開發(fā)自己的新功能;
(注:根據(jù)具體情況,第3步和第4步可合為一步,直接在 master 分支上切個(gè)新分支進(jìn)行開發(fā)) - 開發(fā)過程中,多使用 commit 和 push 保存代碼,出問題了還能回退代碼;
- 開發(fā)完后,注意 pull 一下,與 master 主分支保持一致,沒問題后先自測,然后發(fā)到公司的測試服務(wù)器上,通知測試姐姐進(jìn)行測試;
- 測試通過后,準(zhǔn)備合并分支,即 merge。可能存在權(quán)限問題,這時(shí)先將開發(fā)好的新功能分支推送到線上,然后在公司的 git 項(xiàng)目托管網(wǎng)站上創(chuàng)建一個(gè) “merge requests”,負(fù)責(zé)人審核后會(huì)自動(dòng)合并。如果沒有權(quán)限問題,直接切回到 master 分支,然后 git merge origin feature/learn-git 或者 git merge feature/learn-git, 然后在 git push 。
基本操作
項(xiàng)目克隆到本地后,遠(yuǎn)程倉庫的名稱一般默認(rèn)為 origin ,可以理解為 origin 就代表“遠(yuǎn)程”的意思??赏ㄟ^ git remote 查看遠(yuǎn)程倉庫名,結(jié)果如有不同,替換以下所有命令中 origin即可。
1. 克隆項(xiàng)目文件—— git clone
加入一個(gè)已存在的項(xiàng)目時(shí),執(zhí)行此命令即可將項(xiàng)目克隆至本地,只需執(zhí)行一次!
git clone <url>
2. 添加修改文件—— git add
常在后面跟參數(shù) -A ,表示將項(xiàng)目根目錄下,除 .gitignore 所匹配文件外,所有修改文件添加至?xí)捍鎱^(qū)(類似于緩存)。相當(dāng)于告訴 git ,這些文件上了我的紅名單,你給我盯緊了這些文件的動(dòng)向。
git add -A
或者,你也可以將指定文件添加到暫存區(qū)(過于自由化,不喜歡:-O):
git add <文件路徑及全稱>
注: git add 和 git commit -m 命令可以合并簡寫為 git commit -am 。
3. 提交修改內(nèi)容—— git commit
相當(dāng)于一個(gè)保存操作,把寫好的代碼放進(jìn)倉庫里面存起來,每次 commit 都會(huì)自動(dòng)產(chǎn)生一條日志,所以最好寫上注釋,便于協(xié)作者和自己查閱。
git commit -m '注釋內(nèi)容'
注:如果想回退版本,可根據(jù)日志內(nèi)容進(jìn)行操作,可查看下次手記。
4. 拉取遠(yuǎn)程代碼
pull 可以將遠(yuǎn)程倉庫的代碼拉取到本地倉庫進(jìn)行比較,并將本地沒有的內(nèi)容合并到本地,與本地沖突的內(nèi)容會(huì)在相應(yīng)文件中標(biāo)識(shí)出來(這時(shí),你需要手動(dòng)解決沖突代碼?。?。其實(shí)就一個(gè)目的,保持遠(yuǎn)程同步。
git pull origin <遠(yuǎn)程分支名>
5. 推送至遠(yuǎn)程倉庫
commit 操作后可以 pull 和 push ,也可以不用。和 pull 一起捍衛(wèi)遠(yuǎn)程同步,漫步云端!
git push
注: 所有 commit 的內(nèi)容都能就行回退版本,所以無須過于擔(dān)心犯錯(cuò)。
分支的創(chuàng)建、切換、合并、刪除
當(dāng)你新建一個(gè)項(xiàng)目時(shí),都會(huì)有生成一個(gè)名為 master 的默認(rèn)分支,一般作為項(xiàng)目主分支。你可以基于它任意創(chuàng)建、切換、合并及刪除項(xiàng)目分支,不過最好符合工作規(guī)范,按要求來做!
1. 創(chuàng)建分支
git branch dev
注: 雖然創(chuàng)建了分支,但并沒有切換到這個(gè)新建的分支上,需要和 checkout 結(jié)合著使用(可簡寫)。
2. 切換分支
切換分支前,請先確定當(dāng)前分支是否有提交代碼(commit),可執(zhí)行 git status 查看狀態(tài)。
git checkout dev
執(zhí)行完后即從原分支切換到了 dev 分支。
注: 可與 git branch dev 合并命令為 git chekcout -b dev 。
3. 合并分支
合并分支前,請先確保你的分支已經(jīng)開發(fā)完畢,然后誰與誰合,就 merge 誰。
git merge dev
注: 這樣只是合并了本地分支,如果想合并遠(yuǎn)程分支,可執(zhí)行 git merge origin dev,或者本地合并后推到遠(yuǎn)程分支上。
4. 刪除分支
確定無誤或者上線后,即可刪除功能分支。
git branch -d dev
注: 刪一刪,世界就清凈了!
輔助命令
查看狀態(tài)
git status
查看差異
git diff
查看日志
git log
查看遠(yuǎn)程倉庫名
git remote