2017年1月19日 星期四

Git版本分支 commit操作 筆記

Git版本分支 commit操作 筆記

一開始預設的分支都為master(如圖) 

但我們一定是是master作為最終版本
團隊在一開始做的時候都是創立新的分支,在新的分支工作完成之後
在合併到master上
以下為了講解方便,所以會用多個.txt記事本作為參考依據

--------------------------------------------------------------------------------------------------------------------------

創造分支(branch)
$git branch "branch name"
若一開始在建造新的分支時資料夾內沒有檔案,就新建就會出現錯誤(如圖)


解決方法:新建一個檔案並且記得$git add "file name" $git commit
這樣裡面就有檔案且有紀錄

接下來再次創造分支即可成功
接下來我們用$gitk -all 查看目前分支狀態(如圖)


我們現在看到剛剛創的Fang 跟master處於同一個水平,代表說目前Fang的版本與master的版本
一模一樣


為了看出版本不一樣,我們先把資料夾切換到Fang這個版本去做些變動(ex.建立新的文件)
我們將新的文件建立起來456.txt

切換分支:$git checkout "branch name"
$vi 456.txt #創立456.txt
$git add . #追蹤所有檔案(此時包含 123.txt 456.txt)
$git commit(提交檔案)

這時候我們再用指令 $gitk --all去查看可以發現剛剛原本水平的分支,因為分支的變動
所以Fang會在最上面(代表最新的一次)
而在分支右邊的文字(紅圈)則是你在$git commit 裡面第一列的文字

現在我們比較一下Fang 和master這兩個分支裡面檔案有甚麼不一樣

因為我們剛開始在master這分流裡面我們只創造123.txt
但我們切換到Fang時,又創造出456.txt,不過因為分支不一樣所以是獨立的
當然若我們做完工作之後就要將做好的檔案合併到master裡面

----------------------------------------------------------合併----------------------------------------------------------
這時候,我們想要把Fang這個分支作的內容,於master原有檔案之下合併起來
這時候原本在master底下沒有的"456.txt"因為有合併的情況下,而有了檔案(如圖)




這時候再用$gitk --all查看 就可以發現剛剛有的commit存檔點(如圖)


-----------------------------------------------回復到上一個存檔點------------------------------------------------

當我們在任何一個分支想要反悔,只要你有做commit存檔點($git commit)

返回上一個存檔點指令:$git reset --hard HEAD

我們回到最一開始的master存檔點
所以$git reset --hard HEAD~2 ("~2":代表回到前面兩個 若預設沒打則是"~1")
這時候我們在看檔案發生了甚麼變化(如圖)


可以看到現在master現在檔案回到剛開始的"123.txt"而已了,沒有"456.txt"檔案了(如圖)

而且如果你有在master跟Fang合併時,將123.txt做更動,因為一開始master內的123.txt沒有做更動,所以裡面是一片空白



下集待續........

沒有留言:

張貼留言