git使用流程

2021-08-02 18:52:03 字數 3178 閱讀 1484

說一下使用git做版本控制的時候的工作流程

1

2

3

4

git add -a           #需要新增到版本庫中的檔案 -a 就代表著所有檔案(除開了 .gitignore忽略掉的檔案)

git commit -m '本次提交的備註'

git pull #將遠端的庫和本地的庫版本同步一下,因為遠端庫可能發生了修改(多人合作開發時)

git push

這樣操作的前提是本地遠端都是同乙個master分支上

以上操作前兩步通常不會碰到問題,最容易發生問題的是git pull這一步

因為多人開發時難免碰到同時修改了同乙個檔案,那麼就會產生衝突

git 是根據檔案每行發生的修改進行的判定的,如果同時對同一檔案的同一行發生了修改,就卡死到這一步上了

我常用的是命令列和 phpstrom 中的版本控制工具,最推薦的是命令列操作,別的圖形介面也是調的命令列介面

直接學會git 的命令是學習成本最低的一種方式,一次學會到處可用啊!

命令列還有個強大的地方就是它的提示通常就是你解決問題的方法,照著提示打就行(要善用提示啊,別看見報錯就慌了)

我們做乙個實驗,我自己的乙個版本庫本地和遠端同時發生了修改,而且是操作的同乙個檔案,

我直接進行git push操作

看到提示沒?提示中的 hint 中說了,向遠端庫中更新被拒,因為遠端有了修改而本地沒有(說白了就是沒同步),

這通常發生在另乙個版本庫向遠端推送了相同的檔案(就是兩個人在這個版本下同時操作了同乙個檔案),

提示中給出原因之後緊接著給出了解決辦法(e.g., 'git pull ...')before pushing again,

我們按著它給的提示操作一下

通常如果兩個人之間的操作不發生衝突比如同時修改了同乙個檔案的同一行的情況下就會進入commit

編輯介面了,但是我給他人為的造成乙個錯誤,這個錯誤就是我們最常碰到的錯誤,合併衝突

看到提示中的最後一行了沒有?

automatic merge failed; fix conflicts and then commit the result.

自動合併失敗了,請修復衝突並再次提交

如果檔案很多我怎麼去找到它?

第一種方法坑爹的地方就是好多任務具他給你提示就提示一次,你如果給關了就不會再提示了,但是該提交不上去的

還是提交不上去,而且如果是線上火速修復的時候你的編輯器是幫不到那麼遠的

我們選第二種,肯定不是挨個檔案去翻啊!會死人的

有乙個很有用的命令

1

git status

標紅的檔案都給你了,而且還給你了需要執行的命令,你別假裝看不到啊!

當然這個時候直接git add && git commit會出事的,你還沒解決衝突呢!

我們去這個衝突檔案中解決掉衝突本地能跑通了再提交,而且這個錯誤提示會指名檔案路徑的,我這個衝突檔案

因為正好是在專案的根目錄下才沒有的

開啟這個檔案我們看到如下的內容:

什麼?你說你找不到是誰?你沒看到**衝突塊下的779833d952d8a6557b2e8eba3bd192ede5cb6ca0

這一段文字嗎?你先別激動,這個點還不適合開車,這個是提交的 commit-id,你每次提交都會產生的乙個標識

要檢視這到底是誰和我的**衝突了就執行下面的命令

1

git log 779833d952d8a6557b2e8eba3bd192ede5cb6ca0

第一行就是你要的結果,

如果直接git log -p就是列出所有的提交記錄 -p 就是顯示出修改的地方

衝突塊部分 head就是你寫的**,下面的是別人寫的,去掉其中乙個把那些標籤清理乾淨,測試一下沒問題了

git add && git commit && git pull && git push這四連技好了,世界清淨了

這是我在 segmentfault 中給出的答案:

比如你從乙個git log為1,2,3,4,5,6的遠端庫拉取到了本地,

另乙個同事也拉取了同樣的**,而且你的同事先於你提交到遠端了,

此時遠端的版本是1,2,3,4,5,6,7_new,8_new,

而你當前只是本地的版本1,2,3,4,5,6,7_local,8_local,9_local

從這裡你就能看出你前一部分和遠端的一樣,後一部分和遠端的不一樣,

這個時候你不能正常推送上去的,如果你採取git push origin master --force

那麼遠端的版本就變成了1,2,3,4,5,6,7_local,8_local,9_local

之前你同事推送的7_new,8_new這兩次推送被覆蓋了,這不是大家想要的情況

因此需要git pull來將本地的版本合併成樣

1,2,3,4,5,6,7_new,7_local,8_local,8_new,9_local,10_commit_merge

遠端和本地的排序是按當時commit的時間來排的,最後乙個10_commit_merge就是你本地遠端合併的標誌,最後你推送到遠端倉庫的應該也是這個,

因為你們操作的是同乙個庫始終要保持**的同步,所以一旦版本庫發生改動同一分支下的所有人都要跟著去同步他,因為各開發各的直接往上推 git 還沒智慧型到幫你處理衝突的地步

git 使用流程

去自己的工作分支 git checkout work 工作.提交工作分支的修改 git commit a 回到主分支 git checkout master 獲取遠端最新的修改,此時不會產生衝突 git pull 回到工作分支 git checkout work 用rebase合併主幹的修改,如果有...

Git使用流程

git 全域性資訊追蹤器 git是乙個分布式版本控制工具,git的使用 倉庫不是必須的,使用者本地就是乙個完整的版本倉庫,的前進 回退 刪除等等操作都可以直接在本地進行,不需要 倉庫。但是,在實際操作中,為了能夠和其他同事快速溝通以及合併 一般還是會搭建乙個 倉庫。git對分支的管理非常友好,可以快...

Git使用流程

git的使用流程 1 github註冊流程 1 進入github官網 2 註冊乙個自己的github賬號 3 右上角選擇new repository 4 進入create a new repository 選擇你的倉庫名填入 repository name 必填 例如test description...