仓库
远程跟踪信息
git fetch --pruneBranch
查看本地分支和远程分支的关联关系
git branch -vv 将本地分支和远程分支的关联关系
git branch --set-upstream-to=origin/<branch> <local_branch>删除本地分支:
这个命令会强制删除指定的本地分支,不管该分支的改动是否已经被合并到其他分支。
git branch -D branch_name这个命令会发送删除指定远程分支的请求,从而将该分支从远程仓库中删除。
git push origin --delete branch_nameContent
需要将新增的修改的内容添加,例如
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 操作时,主仓库和子模块都得到了更新。选择方法二或方法三会使你的操作更简便和自动化。