星期五, 9月 22, 2017

[git] detached Head

上 git 課程的內容,主要是說明 Detached Head 如何發生和修正

此為預設 git 線圖

[git] detach Head-1

對 Commit G 進行 git checkout,從下圖就知道,Detached Head 已經產生啦,該狀態是不在任何 branch 上的喔,應該建議應該下 git checkout -b BranchName 來建立 branch,讓該 commit 有所屬

[git] detach Head-2

假設使用者忽略上圖訊息,就直接寫 Code 且又 commit ,commit 名稱為 DetactHeadCommit

[git] detach Head-3

透過 TortoiseGit 來觀察線圖變化

[git] detach Head-4

假設在 Detacted Head 上完成,準備要切回 master 上來進行合併,切回 master 當下會有下面訊提醒,遺留一個 commit,要建立一個 branch 來保留它喔

[git] detach Head-5

利用 TortoiseGit 來觀察線圖,發現 DetactHeadCommit 不在線圖上啦

[git] detach Head-6

此時利用 git reflog 指令來找出 DetachHeadCommit 的 SHA1

[git] detach Head-7

利用 git checkout -b efa879 來讓 DetactHeadCommit 有所屬 branch

[git] detach Head-8

再利用 TotoiseGit 來顯示該 branch,就會看見 efea987 的 Parent Commit 是 Commit G 囉,DetactHeadCommit 並沒有消失不見,Code 還在

[git] detach Head-9

而 ToroiseGit 在這部分有防呆,當要 git checkout commit 時,option 內會預設要建立 branch

[git] detach Head-10

星期日, 9月 10, 2017

[git] 檔案刪除衝突

7天學會Git版本控制 書籍的解說範例,以往看到的解決衝突例子,都是 Code 同行更改來說明,這次看到是檔案被刪除,就想 try 一下,在 VSTS 上刪除該檔案,在 VS 上修改該檔案並進行同步

同步會發生衝突確認

[git] 檔案刪除衝突-1

進行衝突解決判斷

[git] 檔案刪除衝突-2

書籍內容說明
  • 保留檔案,利用 git add 把檔案再加入
  • 刪除檔案,利用 git rm 把檔案移除
在 Team Explore 內,只要點選保留檔案或刪除就可以做到囉

星期日, 9月 03, 2017

[git] 格式化 git log 查詢


內容中,都有介紹到格式化 git log 的設定,筆記一下
  • 原本 git log 結果
[git] 格式化 git log 查詢-1
  • 7天學會Git版本控制內容介紹
git config --global alias.lg "log --graph --decorate --pretty=oneline --abbrev-commit"
[git] 格式化 git log 查詢-2
  • SITCON Workshop - Git 版本控制入門課程介紹
git config --global alias.lg "log --color --graph --all --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --"
[git] 格式化 git log 查詢-3