Bootstrap

git push命令

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. 示例完整流程

以下是一个刷新本地仓库的完整流程:

  1. 更新远程数据:

    git fetch --all
    
  2. 查看分支状态:

    git status
    
  3. 拉取远程分支的最新代码:

    git pull --rebase
    
  4. 如果需要重置本地分支:

    git reset --hard origin/main
    

通过这些步骤,你可以确保本地仓库的所有数据与远程仓库保持同步。

;