自己學的是 git, 也花了不少時間在 git 上, 可是現在需要使用 hg, 頓時所有的版本控制技能降到 0 了。hg 和 git 非常的不一樣, 本以為有了 git 的基礎, 可以快速上手, 但是搞砸了!
不管我在哪個 commit 或是 branch, hg log 一律列出「所有」的 commit log, 這對習慣 rcs/cvs/svn/git 的我來說造成了很大的困擾:
不管我在 changeset: 3:4fc0c9ba8667 或是 changeset: 2:70c5fe8f9e85, hg log 一律列出以下的 log
你知道我現在在哪個 commit 嗎?
那不知道的話會發生什麼事情呢?
事情大條了, 我不知道我現在的檔案是哪個 commit, 那我修改的時候我怎麼知道我改到哪個版本呢? 不知道習慣使用 hg 的朋友, 是如何對付這個問題的?
一開始沒搞懂, 所以在使用 hg 時沒能像 git 那樣得心應手, 整理以下指令, 勉強可以用 hg 了。
hg branch b1 # 建立 branch b1
hg update b1 # 切換到 branch b1
hg branches # 列出所有 branch
hg branch # 我在哪個 branch
hg (id)entify [--num] # 我在哪個 commit
hg update --clean # 撤銷沒有 commit 的 merge
hg log -b . # 顯示目前 branch 的 log
hg log -r commit_id1:commit_id2 # 顯示 commit_id1:commit_id2 的 log
hg log -r commit_id1:commit_id2 -b . # 顯示目前 branch commit_id1:commit_id2 的 log, 這相當於 git log 的表示法, 完全的不習慣
thg 是個 gui 的 hg 工具, 可以輔助使用。
沒有留言:
張貼留言
使用 google 的 reCAPTCHA 驗證碼, 總算可以輕鬆留言了。
我實在受不了 spam 了, 又不想讓大家的眼睛花掉, 只好放棄匿名留言。這是沒辦法中的辦法了。留言的朋友需要有 google 帳號。