2010-08-24 87 views
9

在我開始使用Git作爲我的SCM之前,我會「通過」測試代碼的穩定性,然後我只需複製工作目錄並將其重命名爲諸如(date)project_name 。然後,如果我搞砸了某個地方,不能挖掘自己,我會從最後一個穩定的目錄開始。然後我聽說Git。學習Git。需要知道我是否在正確的軌道上

我想知道我是否正確使用Git到目前爲止。這是我一直在做:

  1. 編寫一些代碼...

  2. git add .所有修改過的文件添加到舞臺

  3. git status檢查,如果這些更改過的文件準備好承諾

  4. git commit提交最新更改並編寫提交消息

  5. 重複

到目前爲止,這是我一直在做。爲了簡單的備份目的以及恢復到「以前的穩定性」的能力,這是否足夠了解Git?如果不是,我還應該知道些什麼?

+0

感謝大家的出色投入!我感謝您的幫助。 – BasicObject 2010-08-25 00:11:18

回答

7

如果您只想在出現問題時重置爲舊提交,那麼是的,就是這樣。雖然你可以將所有的git步驟合併爲一個具有:

git commit -a 

(這將提交所有更改跟蹤的文件)


我會看看的分支,如果你有時間標記,但他們不嚴格要求自己在做什麼,他們只是往往使生活更輕鬆

+0

感謝您的閃電反應! – BasicObject 2010-08-24 15:23:02

+0

@ user284194 - 特別標記 - 它允許您標記目前與您客戶的「發佈」版本。 – Paddy 2010-08-24 15:26:22

+0

+1,絕對看標籤和分支,因爲它們可能無法工作,你認爲它們的工作方式。 – 2010-08-24 15:28:57

2

我用gitk --all想象我的修訂歷史記錄和提交的修改對所有分支機構,我用git commit -am "commit message"添加和一個命令提交。

我也推薦使用分支機構。我在做web開發,所以我會讓master分支反映服務器上代碼的狀態,並且每次我開發一個大功能時我都會創建一個新的分支。這樣,如果我有緊急錯誤修復,我可以輕鬆檢出主分支,提交併上載修復程序,並將其合併回正在進行的功能。

1

而對於一種方便的方法將它們之前預覽更改,

git diff 
3

是的,你這樣做是正確的:) commiting,它有時運行下面的命令是一個好主意之前:

git difftool 

這將讓你瀏覽你最喜歡的diff工具(例如Beyond Compare,KDiff3等)中的所有代碼更改。只需按回車打開該工具,確保一切正常並關閉程序。然後再次點擊輸入以自動比較下一個更改的文件。

如果您正在使用Windows,here's a good tutorial關於如何設置您最喜愛的差異(和合並)工具。

8

正如其他人所說的,我強烈建議讓分行舒適。我的工作流程一般是:

開始形成主*分支:

  • git checkout -b awesome-new-killer-feature創建一個新的分支(-b),並把它簽出。

  • 編寫一些代碼...

  • git add .git statusgit commit提交的微小變化,重複步驟2

哦,不!我的朋友剛剛報告了一個嚴重的bug!他失去了數據!!!!!

  • git checkout master回到主分支

  • git checkout -b bugfix-serious-data-loss的修補程序

  • 修復錯誤,git addgit statusgit commit,沖洗,重複,直到錯誤是固定的創建新的分支

  • git checkout master返回主分支

  • git merge --no-ff bugfix-serious-data-loss合併bug修復返回到主

好了,現在我可以回到我真棒新殺手特徵的工作:

  • git checkout awesome-new-killer-feature的簡歷是我的工作正在處理

  • git rebase master將更改合併到工作代碼,以便我們獲得bugfix的好處。且不說這樣可以減少以後,當我們需要這個分支合併回掌握

  • 寫代碼,git addgit statusgit commit,沖洗合併衝突的概率,重複,直到功能非常齊全

  • git checkout mastergit merge --no-ff awesome-new-killer-feature合併分支返回到主

現在坐下來,然後鍵入gitk看到你一直在做的一個很好的歷史觀。

可選:

  • git branch -D bugfix-serious-data-loss awesome-new-killer-feature刪除未使用的分支。我喜歡保持我的回購清潔

git的威力不是來自能夠檢查點你的工作。它來自合併的速度和便宜分支&。分支允許您同時處理多個想法,並且/或者嘗試拋棄想法,而不會影響穩定的代碼。如果這個想法不起作用,只需刪除該分支,如果它工作合併到主。

*注意:按照慣例,大多數git用戶都會調用他們的主/主分支「master」。

+0

爲什麼'--no-ff'標誌? – 2010-09-08 06:35:45

+0

--no-ff標誌是強制git將合併視爲有兩個父母,而不是內聯合並。這樣做的好處是,當你使用像'gitk'或'git log --graph'這樣的工具時,更容易看到變化組。 – slebetman 2010-09-08 08:12:22