Git使用之常用命令的作用以及避免衝突解決衝突

之前有一次面試問的問題是git提交方式我的回答是pull add commit push  但是面試官說這樣會有衝突,所以讓我對這習以爲常的操作產生了懷疑,就對它進行了一番搜索理解學習。下面是我參考的覺得最合理的博客了。在下面我也會以自己理解的順序寫下自己的見解。就跟我有一篇面試上面寫的一樣 衝突避免不了,就看哪種解決衝突的方式方便了。

文章參考https://blog.csdn.net/dataiyangu/article/details/91050707

 

首先講解Git衝突的時候要先引入Git的區間概念 :工作區、暫存區、本地倉庫和遠程倉庫

平時寫代碼的地方是工作區,是自己工作寫代碼修改並立即有反饋的區間

暫存區是使用add .的時候,將工作區間的改動提交到暫存區間,這時還未將修改提交到本地倉庫

commit 之後,就會將暫存區的內容提交到本地倉庫

push操作會將本地倉庫的記錄提交到遠程倉庫 

遠程倉庫相當於一箇中心倉庫,記錄最新版本的代碼

 

將遠程倉庫拉取到本地和工作區間使用的是git pull 

pull相當於執行 git fetch (將遠程倉庫代碼拉取到本地倉庫)git merge(將本地倉庫更新合併到工作區間)

提前科普git的diff操作https://www.cnblogs.com/qianqiannian/p/6010219.html

衝突的來由

衝突是由於自己修改的地方和遠端已經有人提交的修改重複,即兩個人在這次修改提交中都修改了同一個地方

所以避免衝突就是在提交之前一定要確保自己的修改和遠端最新修改不是在同一個位置即可。

所以在大型項目中避免衝突就顯得很重要了(但是衝突是不可能完全消滅的)!!!

操作習慣和命令使用順序會影響到衝突出現的頻率和衝突解決的效率問題。

1、在每次修改、添加文件前先pull一下,保證本地和遠端的最新更新一致

2、每次修改、添加文件後先fetch,然後diff比較工作區和本地倉庫最新版本是否有重複修改的地方如果有則先將修改記錄然後將本地倉庫更新merge到工作區間後再添加修改(這樣其實只是將修改衝突操作提前了,其實衝突還是發生了),確保提交到遠端的是沒有衝突且正確的版本

3、其實pull、add、commit、push和add、commit、pull、push都不能完全避免衝突,但是最好是pull、add、commit、pull再push這樣會保證自己修改完並且無衝突的版本提交到遠程倉庫

4、先add將修改提交到暫存區,然後pull下來遠端的到工作區間,如發生衝突將有衝突的文件從暫存區還原回來,再比對衝突的地方解決掉之後再pull、add、commit、pull、push

衝突無法避免,如果發生衝突,最好的方法是如何最有效率最明顯直接的解決衝突

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章