仓库
远程跟踪信息
git fetch --prune
Branch
查看本地分支和远程分支的关联关系
git branch -vv
将本地分支和远程分支的关联关系
git branch --set-upstream-to=origin/<branch> <local_branch>
删除本地分支:
这个命令会强制删除指定的本地分支,不管该分支的改动是否已经被合并到其他分支。
git branch -D branch_name
这个命令会发送删除指定远程分支的请求,从而将该分支从远程仓库中删除。
git push origin --delete branch_name
Content
需要将新增的修改的内容添加,例如
git add .
暂存当前分支并切换到其他分支
git stash
切换到其他分支
git checkout branch-name
恢复暂存的分支
git stash pop
更新子模块
当你执行 git pull
更新主仓库时,Git默认不会自动更新子模块(submodules)。为了同时更新主仓库及其子模块,你需要进行一些额外的操作。下面是一些常见的方法来确保在 git pull
之后子模块也被更新。
方法一:手动更新子模块
首先,执行 git pull
更新主仓库:
git pull
然后,手动更新子模块:
git submodule update --init --recursive
这个命令会初始化和更新仓库中的所有子模块,包括递归子模块(即子模块中的子模块)。
方法二:使用别名
为了简化每次操作,你可以为这两个命令创建一个Git别名。这样你只需要输入一个简短的命令来执行 git pull
并更新子模块。
打开你的 Git 配置文件:
git config --global alias.pull_update '!git pull && git submodule update --init --recursive'
这样,你在任何仓库中执行以下命令时,就会自动执行 git pull
并更新子模块:
git pull_update
方法三:修改 post-merge
钩子
Git 允许在特定操作后自动执行脚本,你可以利用 post-merge
钩子在 git pull
后自动更新子模块。
在你的仓库的 .git/hooks/
目录下,创建或编辑 post-merge
文件:
nano .git/hooks/post-merge
添加以下内容:
#!/bin/sh
git submodule update --init --recursive
保存并退出,然后给脚本执行权限:
chmod +x .git/hooks/post-merge
这样,每次执行 git pull
之后,Git 会自动运行 post-merge
脚本并更新子模块。
通过这些方法,你可以确保在 git pull
操作时,主仓库和子模块都得到了更新。选择方法二或方法三会使你的操作更简便和自动化。