100个git常用命令

Git是一个开源的分布式版本控制系统,用于有效、高速地处理从很小到非常大的项目版本管理。以下是100个Git常用命令的归纳:

一、仓库创建与克隆

  1. git init:在当前目录初始化一个新的Git仓库。
  2. git clone [url]:克隆远程仓库到本地。

二、文件操作

  1. git add <file>:将文件添加到暂存区。如果要添加当前目录中的所有文件,请使用.代替。
  2. git add .:将当前目录中的所有更改添加到暂存区域。
  3. git commit -m "<message>":提交暂存区的文件到本地仓库,并附上提交信息。
  4. git commit --amend:修改最后一次提交的信息或内容。
  5. git reset <file>:从暂存区撤销文件的更改。
  6. git rm <file>:从版本库中删除文件。如果仅想从暂存区中删除,可以使用--cached标志。
  7. git mv <current path> <new path>:移动或重命名文件。
  8. git status:显示工作区和暂存区的状态。
  9. git diff:显示文件修改的差异。使用--staged标志可以显示暂存区的更改。

三、分支管理

  1. git branch:列出所有本地分支。
  2. git branch -a:列出所有本地和远程分支。
  3. git branch -r:列出所有远程分支。
  4. git branch -v:显示最后一次提交的分支信息。
  5. git branch -d <branch>:删除一个分支。如果分支未合并,使用-D强制删除。
  6. git checkout <branch>:切换到指定分支。
  7. git checkout -b <branch>:创建一个新的分支并切换到它。
  8. git merge <branch>:合并指定分支到当前分支。
  9. git rebase <branch>:将一个分支上的更改重新应用到另一个分支。
  10. git cherry-pick <commit>:从一个分支选择性地应用更改到另一个分支。
  11. git rebase -i:执行交互式rebase操作,可以合并、修改、删除提交等。

四、远程操作

  1. git remote -v:显示远程仓库的详细信息。
  2. git remote add <remote name> <url>:添加一个新的远程仓库。
  3. git remote remove <remote name>:移除一个远程仓库。
  4. git remote rename <old name> <new name>:重命名远程存储库。
  5. git fetch <remote name>:从远程仓库拉取最新变更,但不合并到本地仓库。
  6. git fetch <remote name> <branch>:从特定分支获取更改。
  7. git pull <remote name> <branch>:拉取远程分支并合并到本地分支。使用--rebase参数可以避免产生Merge点。
  8. git push <remote name> <branch>:将本地分支推送到远程仓库。
  9. git push <remote name>:将当前分支推送到远程仓库(如果已设置跟踪)。
  10. git push -u <remote name> <branch>:推送分支并设置上游(跟踪)关系。
  11. git push --force:强制推送更改到远程仓库(慎用)。

五、撤销与重置

  1. git reset --hard <commit id>:重置当前分支到指定提交,并删除所有更改。
  2. git revert <commit id>:撤销指定提交的更改,并创建一个新的提交。
  3. git checkout -- <file>:恢复文件到最近一次提交的状态。

六、查看历史与日志

  1. git log:显示提交历史。
  2. git log --oneline:以单行显示提交历史。
  3. git log --graph:以图形方式显示提交历史,包括分支和合并情况。
  4. git log --pretty=oneline:以简洁格式显示提交历史。
  5. git log --graph --pretty=oneline --abbrev-commit:结合使用,以图形和简洁格式显示提交历史。
  6. git show <commit>:显示某次提交的详细内容。
  7. git show-branch:显示各个分支的提交情况。
  8. git shortlog:根据作者将提交整理成摘要。

七、标签与版本

  1. git tag:列出标签。
  2. git tag <name>:创建标签。
  3. git tag -d <name>:删除标签。
  4. git checkout <tag>:切换到指定标签的版本。

八、储藏与恢复

  1. git stash:暂存当前工作区的修改。
  2. git stash save "<message>":带消息地暂存当前工作区的修改。
  3. git stash list:列出所有储藏。
  4. git stash apply <stash id>:应用指定的储藏。
  5. git stash pop <stash id>:恢复并删除指定的储藏。
  6. git stash drop <stash id>:删除指定的储藏。
  7. git stash clear:删除所有储藏。

九、配置与帮助

  1. git config:配置Git的各种选项和变量。
  2. git config --global:全局配置Git选项。
  3. git config --list:列出所有配置。
  4. git help <command>:显示指定命令的帮助信息。
  5. git gui:启动Git的图形用户界面(如果已安装)。

十、其他高级命令

  1. git bisect:用于二分查找引入bug的提交。
    • git bisect start:启动二分查找。
    • git bisect bad:标记当前提交包含bug。
    • git bisect good <commit>:标记指定提交为没有bug。
    • git bisect reset:结束二分查找并重置HEAD到原来的状态。
  2. git blame:显示每行代码是谁、在什么时间写入的。
  3. git grep <pattern>:在代码库中搜索指定模式。
  4. git archive:创建文件归档。
  5. git submodule:管理子模块。
  6. git reflog:查看引用日志,用于恢复误删除的提交或分支。
  7. git ls-files:列出当前版本库中的文件。
  8. git rev-parse:显示提交对象的标识符。
  9. git fsck:检查Git仓库的完整性。
  10. git gc:清理不必要的文件和优化存储。
  11. git instaweb:启动图形化界面查看仓库(需要安装相关依赖)。
  12. git worktree:管理多个工作树。

十一、与SVN交互(如果适用)

  1. git svn clone [url]:从SVN仓库克隆项目。
  2. git svn init [url]:初始化Git仓库以与SVN仓库进行交互。
  3. git svn fetch:从SVN仓库获取数据,但不应用到当前分支。
  4. git svn rebase:从SVN仓库重新获取数据并应用到当前分支。
  5. git svn dcommit:将本地提交推送到SVN仓库。
  6. git svn log:查看SVN仓库的提交日志。
  7. git svn set-tree:设置SVN仓库的树。
  8. git svn reset:重置SVN仓库。
  9. git svn show-ignore:显示SVN仓库的忽略列表。
  10. git svn info:显示SVN仓库的信息。

十二、特定场景命令

  1. 使用某个commit新建分支:git checkout -b <branch_name> <commit_id>
  2. 用远程分支新建本地分支:git fetch origin <remote_branch_name>:<local_branch_name>
  3. 查看两次提交之间的变化:git diff <commit_id_01> <commit_id_02>
  4. 恢复到之前的某个提交:git checkout <commit_id>(注意,这不会改变工作区或暂存区的状态,只是查看)。
  5. 查看并比较不同分支:可以使用IDE或git diff命令结合分支名进行比较。
  6. 设置远程仓库的HEAD:git remote set-head <remote> <branch>
  7. 更新远程仓库引用:git remote update
  8. 修改远程仓库的URL地址:git remote set-url <remote> <new_url>
  9. 清理不再存在的远程分支:git remote prune <remote>
  10. 显示将要删除的未跟踪文件(但不删除):git clean -n

猜你喜欢

转载自blog.csdn.net/mopmgerg54mo/article/details/143253302