GIT - 基本概念(分支, 差異, 合併)

分支的命名規則:

可以使用 / 創建一個分層的命名方案,但是分支名不能以 / 結尾。不能以 - 開頭。不能寫成類似 feature/.features1(含.)的分支名。不能用連續兩個點..。不能包含空格和特殊含義的字符。

每個分支在一個特定的版本庫中必須有唯一的名字,這個名字始終指向該分支上最近提交的版本。

創建一個分支:git branch [new_branch_name],如果沒有starting-commit 參數跟在分支名後面,則默認是在你現在工作的分支上啓動一個新的分支。如果加上starting-commit, 例如:git branch new_branch db7de5fee.. (db7de5fee..是一個提交ID),則說明該分支基於指定的提交版本之上。

列出本地分支名:git branch, 列出所有分支名:git branch-a(包括遠程分支),-r:列出遠程分支名。

查看分支:git show-branch 命令提供比git branch更詳細的輸出。

檢出分支:git checkout [branch_name], 有未提交的更改時進行檢出時,需要先add當前分支的更改文件或目錄,然後commit(如果一個文件的本地修改不同於新分支上的變更,checkout的時候會報錯。當然可以通過-f 強制checkout,但是這種做法會使得當前branch的更改內容丟失。)【這裏如果是checkout到master上,或者是從master上checkout到別的branch上,那麼不會報錯,只會標記爲M】

在工作分支上查看其它分支上的文件,可以通過git show [other_branch]:[file_name],例如:git show wayne_test_0606: hello.txt。

刪除本地分支:git branch -d [branch_name], Git 不會讓你刪除當前分支,也不會讓你刪除一個 某個提交只包含在要被刪除的分支,也就是說Git防止你在不合併到當前分支的分支被刪除時,不小心丟失其內容。

刪除遠程分支:git push origin --delete [branch_name],或者git push origin :[branch_name]


差異(diff)

其實 git diff 和 UNIX diff差不多,diff -u [init_file] [final_file] //逐行比較兩個文件內容的差異,-u選項表示產生一個合併格式的差異。---:原始文件,+++:最新文件;@@之間表示兩個不同文件版本的上下文行號:-:第一個文件,1表示第一行,4表示連續四行,+:第二個文件;以(-)開頭的行表示從原始文件刪除該行以得到新文件,(+)開始的行表示從原始文件中添加該行以產生新文件。

git diff 命令

(1)git diff:顯示工作目錄和索引之間的差異

(2)git diff [commit]:顯示工作目錄和給定提交之間的差異

(3)git diff --cached [commit]:顯示索引中的變更和給定提交之間的差異

(4)git diff [commit1] [commit2]:顯示給定的兩個提交之間的差異。

命令行選項:--M:查找重命名並且生成一個簡化的輸出。-w/--ignore-all-space:忽略空白字符。--stat:顯示針對兩個樹狀態之間差異的統計數據,報告用簡潔的語法顯示有多少行發生了變化,多少行添加了,多少行刪除了。--color:輸出結果以多種顏色顯示。


合併 (merge)

合併兩個分支流程:在master上合併一個分支

git checkout master

git merge [another_branch]

git log --graph --pretty=oneline --abbrev-commit // git log --graph可以圖形化描述。

如果發生衝突,(1)使用git diff,可以看到衝突文件之間的差異,然後解決衝突。(2)使用 git log --merge --left-right -p,通過日誌來查看衝突。// --merge: 只顯示跟產生衝突的文件相關的提交, --left-right:左邊顯示<,自己的branch一邊,右邊顯示>,要合併的branch一邊。-p:顯示提交信息和每個提交的相關補丁。

終止或重新啓動合併:

在執行git merge 命令執行之前放棄,可以使用 git reset --hard HEAD//恢復到當前最新的提交。【注】HEAD相當於遊標。

在執行git merge 命令之後放棄,可以使用 git reset --hard ORIG_HEAD //恢復到上一個提交。

發佈了66 篇原創文章 · 獲贊 9 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章