我對git很陌生。我在本地服務器上克隆了一個項目,並使用TextMate編輯我的文件。編輯來自不同git分支的文件
所以,我有一個叫master的分支。然後我創建了一個名爲local的第二個分支。我做了一些修改,添加了一些文件並提交了所有文件。但現在當我回到我的主分支時,我無法使用TextMate編輯古代文件(未修改的主分支文件)。如何解決這個問題?我是否應該不使用TextMate?
最佳, 邁赫迪
我對git很陌生。我在本地服務器上克隆了一個項目,並使用TextMate編輯我的文件。編輯來自不同git分支的文件
所以,我有一個叫master的分支。然後我創建了一個名爲local的第二個分支。我做了一些修改,添加了一些文件並提交了所有文件。但現在當我回到我的主分支時,我無法使用TextMate編輯古代文件(未修改的主分支文件)。如何解決這個問題?我是否應該不使用TextMate?
最佳, 邁赫迪
你有沒有做這樣的事情,那麼:
#clone out repo that only has master branch
git clone path/to/repo
#create and checkout branch local
git checkout -b"local"
## edit files ###
#stage files
git add .
#commit changes
git commit -m"did some work"
#switch back to master
git checkout master
此時,你應該在你本地的master分支,你是克隆後。如果你想在本地更改合併到主:
git merge local
在任何時候,你可以運行git status
看看哪些文件已經改變,git branch -a
看到所有的分支機構對您的回購
如果您沒有這一切正確,仍然無法編輯文件,那麼它可能是一個權限問題:
sudo chmod 644 /path/to/local/files/* -R
我就像你說的一樣,逐點。但是例如,當我切換後運行ls命令時,我發現我在本地分支上工作時添加的所有文件。這怎麼可能? – 2012-07-18 11:35:09
只有一點,我沒有合併兩個分支,因爲我現在不想這樣做 – 2012-07-18 11:36:21
好吧,如果文件未被git跟蹤,那麼當您切換分支時它們將保持原樣,因爲它們不受git控制。你首先需要提交它們。因此,例如,如果您克隆了回購,添加文件,然後在不提交這些文件的情況下切換分支,那麼這些文件會跟隨您,直到您將它們提交給分支。如果你運行一個git狀態,你會在標題下看到這些文件:Untracked files: – Manatok 2012-07-18 11:37:53
因此,這裏是一些有用的命令
假設你是在主分支,那麼你創建newbranch
$ git的結帳-b newbranch
然後在這裏編輯一些文件,那麼你需要提交改變
$ git的補充。 $ git的承諾-m 「提交信息」
然後切換到主分支
$ git的結帳主
合併更改
$ git的合併newbranch
我總是需要像那樣編輯。舉例來說,我想出了一些重要的東西,並且需要立即在一個文件A中將它們慢跑,它不在我正在編輯未完成提交的文件B的分支中,我的操作如下所示:
# stage and commit the fileB
git add fileB; git commit -m 'uncompleted'
# checkout to the branch containing file A
git checkout branchA
# editting the file A
# stage and commit the fileA
git add fileA; git commit -m 'big idea'
# go back to the first branch
git checkout branchB
# reset to the previous commit without changing the working-spot
git reset --soft HEAD~
# edit again and commit
git add fileB; git commit -m 'extend the previous commit'
現在它就像好像我生不逢時brainstrom的中斷都沒有發生過的文件B.總覺得在不同勢分支機構進行編輯。
可能只是一個權限錯誤。 Git不會阻止你編輯文件... – Manatok 2012-07-18 11:16:43
但是當我用我的Mac上的文件查看我的文件時,它們對應於最新版本。看來我不能使用TextMate進行編輯,不是嗎? – 2012-07-18 11:20:27