GIT使用筆記

GIT使用筆記

GIT合併時二進制文件衝突

GIT在合併時如果出現衝突,如果是普通的文本文件,git會在文件衝突的地方標註出來,開發者可以對衝突代碼進行編輯,解決衝突後commit即可,但如果是二進制文件發生了衝突,git是無法標註衝突的,這時候只能從參與合併的兩個分支中選擇一個版本保留,捨棄掉另一個

git checkout FILE –ours [ –theirs ]
–ours 表示檢出當前分支,即保存當前分支的改動,丟棄另外一個分支的改動.
–theirs 表示檢出另外分支, 即保存另外一個分支的改動,丟棄當前分支的改動.

舉個栗子:

有分支A和B, 當前我們在分支A上, 需要把分支B合併到分支A, HashMap.c文件發生衝突了.
git checkout HashMap.c –ours 表示衝突的地方採用A分支上的修改,丟棄B分支上的修改.
git checkout HashMap.c –theirs 表示衝突的地方採用B分支上的修改,丟棄A分支上的修改.

解決完衝突後,就可以像往常一樣 git add git commit了.

取消已經track的文件的版本控制

有些時候需要忽略對某些文件的版本控制,只需要在.gitignore文件中記錄下該文件即可,但是對於已經被添加到版本控制中的文件,.gitignore文件不會對已經track的文件生效,此時需要移除掉該文件的版本控制,讓後將該文件加入到.gitignore文件中commit提交

移除對某個文件的版本控制

git rm –cached filename

移除某個文件夾下的所有文件的版本控制

git rm -r –cached foldername

移除掉版本控制後一定要將響應文件加入到.gitignore文件中,不然文件又會被重新add

git reset的三個參數

git reset –hard是我經常使用的一個命令,不過對於–hard參數的意義不是很明白,後來查了查資料,發現還有兩個參數–soft,–mixed,所以這裏就簡單描述一下各個參數的意義

撤回到已經改動且add,但是沒有commit的狀態

git reset –soft

撤回到已經改動但是沒有add,也沒有commit的狀態

git reset –mixed

完全撤回,消除掉當前所有的改動和add,完全撤回到時的狀態

git reset –hard

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