2012-12-17 53 views
3

我是一個非常基礎的git用戶;我基本上只使用命令git add -a(在修改它們之後添加文件),然後使用git commit -m "what I did",然後使用git push(將它推送到我的服務器)。Git:即將推出我自己的項目

現在我想要做些什麼激烈到我的codebase。有些東西可能無法正常工作 - 我將不得不恢復到原來的位置。

我該怎麼做?我是否創建「分支」?或標籤?或者是其他東西?

我在一組簡單的命令和簡單的解釋之後。也可以返回到原始HEAD,或者然後(可能)將更改合併到HEAD(其不會改變)。

Merc。

+1

是的,一個分支聽起來是個好主意。 – kush

+0

不是混帳,但它是一個非常好的DCVS一般的底漆:[hg init](http://hginit.com/) –

回答

7

您需要一個分支。

git checkout -b nameofyournewbranch 

這會將您當前的分支(默認名稱爲'master')作爲您指定名稱的新分支簽出。你現在所做的任何提交都將在新分支上。如果你想離開它,回到你在哪裏:

git checkout master 

回到新的分支:

git checkout nameofyournewbranch 
如果你想你的分支合併到主代碼庫

git checkout master 
git merge --no-ff nameofyourbranch 

--no-ff表示您將看到它分支出主,然後再分支回來,允許您跟蹤單獨的功能。

要查看您在做什麼,請獲取某種類型的git源代碼樹查看器gitk等等。如果你能直觀地看到它們,就可以更容易地理解分支機構正在做什麼。

更新: 要檢查什麼會合並之前發生,使得在同一個地方的主人一個臨時黨支部,併合並有:

git checkout -b tempbranchname master 
git merge --no-ff nameofyourbranch 

如果你喜歡它,把它合併掌握和它「會是,如果你在第一時間做了它的主人:

git checkout master 
git merge tempbranchname 

如果你不這樣做,只是刪除它:

git checkout master 
git branch -D tempbranchname 

-D表示刪除即使未合併爲主。正常情況下使用-d,因爲如果您嘗試刪除將丟失的未裝入的東西,您會收到警告。

+0

謝謝。接受這一個有--no-ff開關... – Merc

+0

有沒有辦法知道在合併之前*會發生什麼?那樣的話,我可以檢查一下沒有*巨大的災難/衝突/等等。 (也許更新答案...?) – Merc

+0

答案更新。 –

0

在這裏,你有幾個有用的備忘的:one in HTMLone in PDF

的基本命令是

要顯示所有現有的分支機構

git branch 

要創建一個新的分支

git branch BRANCHNAME 

要改變工作c OPY到另一個分支

git checkout BRANCHNAME 

要合併的另一個分支到當前

git merge BRANCHNAME 
1

你可以做到以下幾點:
1)創建新的分支。然後將它合併到你的主分支。

git branch newbranch 
git checkout newbranch 
... 
git checkout master 
git merge newbranch 


2)你可以提交你的主分支,然後撤消你最新的提交。

但我認爲最好的方法是分支。

您可以閱讀這篇文章,以瞭解更多關於分支:
A successful Git branching model

相關問題