git push 常用命令
1. 拉取远程仓库最新数据
使用 git fetch
git fetch
-
作用:
- 获取远程仓库的最新数据(包括分支、标签等),但不会修改本地工作目录。
-
结果:
- 仅更新远程分支(如
origin/main
)的状态,不会自动合并到本地分支。
- 仅更新远程分支(如
使用 git pull
git pull
-
作用:
- 从远程仓库拉取最新的数据并合并到当前分支。
-
结果:
- 本地分支与远程分支同步,更新到最新状态。
-
如果希望以
rebase
方式拉取数据(保持提交历史线性):git pull --rebase
2. 检查远程仓库状态
使用 git remote update
git remote update
-
作用:
- 从所有远程仓库获取最新的分支、标签等信息。
-
结果:
- 不会合并,也不会更新当前分支,仅刷新远程仓库的信息。
查看远程分支更新
git fetch --all
-
作用:
- 从所有远程仓库拉取所有分支的最新状态。
3. 重置本地分支到远程最新状态
如果希望直接让本地分支完全与远程分支一致,可以使用以下命令:
强制同步到远程最新状态
git reset --hard origin/<branch-name>
-
作用:
- 将本地分支重置为远程分支的最新状态,所有本地未提交的更改将被丢弃。
-
示例:
git reset --hard origin/main
4. 更新远程的分支和标签信息
更新所有远程分支和标签
git fetch --prune
-
作用:
- 获取远程分支的最新数据,并删除本地不存在的远程分支。
5. 更新所有子模块
如果仓库中有子模块,刷新时需要同步更新子模块:
git submodule update --init --recursive
-
作用:
- 更新所有子模块到指定的版本。
6. 清理本地无用数据
清除无效的远程分支
git remote prune origin
-
作用:
- 删除本地已失效的远程分支引用。
清理本地缓存
git gc
-
作用:
- 清理本地仓库的垃圾数据,优化性能。
7. 查看状态和对比
查看本地与远程分支的差异
git status
- 显示当前分支是否与远程分支同步。
对比本地分支与远程分支的提交
git log origin/<branch-name>..<branch-name>
-
示例:
git log origin/main..main
- 显示本地分支与远程分支的不同提交。
8. 示例完整流程
以下是一个刷新本地仓库的完整流程:
-
更新远程数据:
git fetch --all
-
查看分支状态:
git status
-
拉取远程分支的最新代码:
git pull --rebase
-
如果需要重置本地分支:
git reset --hard origin/main
通过这些步骤,你可以确保本地仓库的所有数据与远程仓库保持同步。