2017-07-19 48 views
1

我以非標準的方式使用git,我在各自來自不同分支的目錄中有一個文件混合體。我用命令的這個組合來修改文件:使用git來管理同一目錄中的分支組合

git fetch -f --all      # Synch revision info with repository. 
git checkout -f remotes/$REPO/$BRANCH -- $FILE   # Update file contents. 
vim $FILE            # Make changes. 
git add $FILE           # Record the changes. 
git commit -o -- $FILE         # Commit the changes. 
git push -f $REPO heads/$BRANCH   # Push to branch in repository. 

幾乎我想要做什麼,從不同的系統,我可以打倒任何給定文件的最新變化,而不會影響任何其他人。但是,我錯過的是,沒有對文件所做的更改進行編輯追蹤。它看起來像是每次將分支重新根植到最新的提交,而不是鏈接該分支的提交。

誰能告訴我如何解決這個問題?我一直在瀏覽git文檔,但是所有內容都是根據與我在此嘗試做的事情無關的工作流程來描述的。

+0

我認識到RCS對於這種工作流來說是一個更合適的工具,其中每個文件都有自己的存儲庫文件。我使用的是git,因爲在互聯網上有可見的服務器,並且考慮到git工具的豐富性,我相信我可以完成這項工作。 我希望能夠使用分支來做到這一點,而不是爲每個文件創建一個git存儲庫。 BitBucket給出了與存儲庫看起來不那麼漂亮的所有分支的好看法。 –

回答

0

,如果你有

... 
git merge --no-ff --no-commit remotes/$REPO/$BRANCH 
git reset -- * #unstage all changes 
git add $FILE 
git checkout . #cancel changes to all files but $FILE 
... 

更換git checkout -f remotes/$REPO/$BRANCH -- $FILE那麼,什麼你保持在修改來自於一些歷史。

+0

(這裏的虛擬評論 - 我似乎無法刪除將要寫入的內容) –

1

到目前爲止,它看起來像改變

git checkout -f remotes/$REPO/$BRANCH -- $FILE 

git checkout -m remotes/$REPO/$BRANCH -- $FILE 

使得它的工作,我希望它的方式。你看到這個問題嗎?我看到了一些不一致的地方,但它們與我在這裏沒有描述的操作有關。