2013-02-10 921 views
0

我們的客戶端在beanstalkapp.com上設置了多個版本控制項目。使用TortoiseGit更新和提交單個文件,如TortoiseSVN

其中大多數與顛覆。我在Windows上安裝並設置了TortoiseSVN;這使我可以在我的電腦上擁有所有文件的副本。如果我想更改文件,可以右鍵單擊它並選擇「更新」(確保在編輯之前將其更新爲最新版本),進行更改,然後右鍵單擊它並選擇「提交」。我還可以選擇一些我已更改的文件,並將它們一一提交。

最新的項目使用git。我安裝並設置了TortoiseGit,在我的計算機上克隆了存儲庫,但一直在發現界面更令人困惑。

1)我似乎無法找到更新只是一個單一的文件,而不需要下載每一個更改文件的方式。我相信這是通過右鍵單擊該文件夾(而不是文件)並選擇TortoiseGit - > Pull來全局完成的。如果我嘗試右鍵單擊某個文件夾,則無法拉出;有一個'檢查修改',但它似乎並沒有做它聽起來像。

2)我同樣感到困惑。如果我右鍵單擊並選擇Git commit - > master,它確實允許我檢查/取消選中要更改的文件。但是,看來我還必須做一個「推動」,這似乎也是全球性的。當我嘗試更新文件,提交併選擇「推送」時,文件已正確更新,但Beanstalk也在其日誌中列出了我已作出另一項更改:

'合併分支'master'xxx.beanstalkapp。 com:/ xxx

包括一個我沒有碰過的文件。當我選擇「推送」時,我沒有看到任何文件列表。

我一直在閱讀關於類似問題的各種關於stackoverflow的文章,但大多數人似乎是知道很多關於git的技術信息的人;使用命令行,分支等。

是否有任何簡單的方法來更新一個文件,編輯它,並提交它,或者這是不可能與TortoiseGit?

回答

2

GIT中,不像顛覆,不支持工作樹(SVN:工作拷貝)的若干部分具有不同鹼基修改;總是有一個「HEAD」提交,它是整個樹的基本修訂。也不可能下載一些變化,而不是其他人;預計您可以使用整個歷史記錄(直到上次獲取更改時爲止),並在本地導航該歷史記錄(仍然是整個提交一次)。

您可以使用索引進行部分更改,但檢查/推/拉提交始終是整個樹上的操作。我不熟悉TortoiseGit,但是如果它添加了這些功能,那麼由於需要擴展存儲庫格式,它必然會與命令行Git不兼容。)

如果您需要構建一個混合版本狀態,那麼首先,感興趣的修改必須在不同的提交(它通常是一個好主意,在Git中進行細粒度的提交; git rebase -i可用於在發佈它們之前拆分和連接提交)。創建一個來自一個感興趣修訂的臨時分支;然後使用git mergegit cherry-pick來添加其他分支的更改,或使用git revert來撤銷此分支歷史記錄的過去更改。

相關問題