How can I update git sub modules in SourceTree?
问题:
回答1:
I couldn't find the answer myself, so I created a custom action. Go to Preferences, Custom Actions, and enter the following info: (This is on a Mac. Your path to the git executable may vary.)
回答2:
Just double-click on the submodule or left-click and open the module
Once in the submodule, the UI is like any git repo , press on pull/fetch to update to the header. And voila.
回答3:
Here is the windows version:
This command assumes the location of your sh.exe
- depending on how you setup SourceTree it could be somewhere else.
/c %LOCALAPPDATA%\Atlassian\SourceTree\git_local\bin\sh.exe --login -i -c "git submodule update"""
Not sure whether it is a bug - but in the version of Sourcetree I am using (v1.6.14.0) I found that having the extra pair of quotations ""
on the end was required - otherwise an extra quotation exists and the unbalanced statement then causes sh
to bark:
cmd "/c %LOCALAPPDATA%\Atlassian\SourceTree\git_local\bin\sh.exe --login -i -c "git submodule update""
sh: unexpected EOF while looking for matching `"'
sh: syntax error: unexpected end of file
Completed with errors, see above.
回答4:
The link provided by Isuru does include how to perform update (look for "Change the submodule commit which your repository is tracking")
In short, on the main repository,
- choose the submodules dropdown
- double click the submodule you want to update - you will switch focus to the submodule
- pull (latest) or checkout (specific commit) the required update
- go back to the tab for the main repository
- there will be an uncommitted change (which submodule commit to use) in the main repository
- commit and push the change
回答5:
SourceTree enables you to add submodules directly from the UI now. Simply right-click on the sidebar add choose 'Add Submodule' from the list. More info here.