【Git版本控制】Git命令详解(上)

简介: 【Git版本控制】Git命令详解

前言

Git 是一个分布式版本管理工具,版本管理工具就是大家在写东西的时候都用过 回撤这个功能,但是回撤只能回撤几步,假如想要找回我三天之前的修改,光用回撤是找不回来的。而版本管理工具能记录每次的修改,只要提交到版本仓库,就可以找到之前任何时刻的状态(文本状态)。

下面的内容就是列举了常用的 Git 命令和一些小技巧,可以通过页面内查找的方式 Ctrl/Command+f 进行快速查找。

1.展示帮助信息

git help -g

The command output as below:

The common Git guides are:
   attributes          Defining attributes per path
   cli                 Git command-line interface and conventions
   core-tutorial       A Git core tutorial for developers
   cvs-migration       Git for CVS users
   diffcore            Tweaking diff output
   everyday            A useful minimum set of commands for Everyday Git
   glossary            A Git Glossary
   hooks               Hooks used by Git
   ignore              Specifies intentionally untracked files to ignore
   modules             Defining submodule properties
   namespaces          Git namespaces
   repository-layout    Git Repository Layout
   revisions           Specifying revisions and ranges for Git
   tutorial            A tutorial introduction to Git
   tutorial-2          A tutorial introduction to Git: part two
   workflows           An overview of recommended workflows with Git
'git help -a' and 'git help -g' list available subcommands and some concept guides. See 'git help <command>' or 'git help <concept>' to read about a specific subcommand or concept.

2.回到远程仓库的状态

抛弃本地所有的修改,回到远程仓库的状态。

git fetch --all && git reset --hard origin/master

3.重设第一个 commit

也就是把所有的改动都重新放回工作区,并清空所有的 commit,这样就可以重新提交第一个 commit 了

git update-ref -d HEAD

4.查看冲突文件列表

展示工作区的冲突文件列表

git diff --name-only --diff-filter=U

5.展示工作区和暂存区的不同

输出工作区暂存区的 different (不同)。

git diff

还可以展示本地仓库中任意两个 commit 之间的文件变动:

git diff <commit-id> <commit-id>

6.展示暂存区和最近版本的不同

输出暂存区和本地最近的版本 (commit) 的 different (不同)。

git diff --cached

7.展示暂存区、工作区和最近版本的不同

输出工作区暂存区 和本地最近的版本 (commit) 的 different (不同)。

git diff HEAD

8.快速切换到上一个分支

git checkout -

9.删除已经合并到 master 的分支

git branch --merged master | grep -v '^\*\|  master' | xargs -n 1 git branch -d

10.展示本地分支关联远程仓库的情况

git branch -vv

11.关联远程分支

关联之后,git branch -vv 就可以展示关联的远程分支名了,同时推送到远程仓库直接:git push,不需要指定远程仓库了。

git branch -u origin/mybranch

或者在 push 时加上 -u 参数

git push origin/mybranch -u

12.列出所有远程分支

-r 参数相当于:remote

git branch -r

13.列出本地和远程分支

-a 参数相当于:all

git branch -a

14.查看远程分支和本地分支的对应关系

git remote show origin

15.远程删除了分支本地也想删除

git remote prune origin

16.创建并切换到本地分支

git checkout -b <branch-name>

17.从远程分支中创建并切换到本地分支

git checkout -b <branch-name> origin/<branch-name>

18.删除本地分支

git branch -d <local-branchname>

19.删除远程分支

git push origin --delete <remote-branchname>

或者

git push origin :<remote-branchname>

20.重命名本地分支

git branch -m <new-branch-name>

21.查看标签

git tag

展示当前分支的最近的 tag

git describe --tags --abbrev=0

22.查看标签详细信息

git tag -ln

23.本地创建标签

git tag <version-number>

默认 tag 是打在最近的一次 commit 上,如果需要指定 commit 打 tag:

$ git tag -a <version-number> -m "v1.0 发布(描述)" <commit-id>

24.推送标签到远程仓库

首先要保证本地创建好了标签才可以推送标签到远程仓库:

git push origin <local-version-number>

一次性推送所有标签,同步到远程仓库:

git push origin --tags

25.删除本地标签

git tag -d <tag-name>

26.删除远程标签

git push origin --delete tag <tagname>

27.切回到某个标签

一般上线之前都会打 tag,就是为了防止上线后出现问题,方便快速回退到上一版本。下面的命令是回到某一标签下的状态:

git checkout -b branch_name tag_name

28.放弃工作区的修改

git checkout <file-name>

放弃所有修改:

git checkout .

29.恢复删除的文件

git rev-list -n 1 HEAD -- <file_path> #得到 deleting_commit
git checkout <deleting_commit>^ -- <file_path> #回到删除文件 deleting_commit 之前的状态

30.以新增一个 commit 的方式还原某一个 commit 的修改

git revert <commit-id>

31.回到某个 commit 的状态,并删除后面的 commit

revert 的区别:reset 命令会抹去某个 commit id 之后的所有 commit

git reset <commit-id>  #默认就是-mixed参数。
git reset --mixed HEAD^  #回退至上个版本,它将重置HEAD到另外一个commit,并且重置暂存区以便和HEAD相匹配,但是也到此为止。工作区不会被更改。
git reset --soft HEAD~3  #回退至三个版本之前,只回退了commit的信息,暂存区和工作区与回退之前保持一致。如果还要提交,直接commit即可  
git reset --hard <commit-id>  #彻底回退到指定commit-id的状态,暂存区和工作区也会变为指定commit-id版本的内容

32.修改上一个 commit 的描述

如果暂存区有改动,同时也会将暂存区的改动提交到上一个 commit

git commit --amend

33.查看 commit 历史

git log

34.查看某段代码是谁写的

blame 的意思为‘责怪’,你懂的。

git blame <file-name>


目录
相关文章
|
1月前
|
开发工具 git
git 常用命令
这些只是 Git 命令的一部分,Git 还有许多其他命令和选项,可根据具体需求进行深入学习和使用。熟练掌握这些命令能够帮助你更高效地管理代码版本和协作开发。
|
23天前
|
机器学习/深度学习 Shell 网络安全
【Git】Git 命令参考手册
Git 命令参考手册的扩展部分,包含了从基础操作到高级功能的全面讲解。
29 3
|
1月前
|
缓存 Java Shell
[Git]入门及其常用命令
本文介绍了 Git 的基本概念和常用命令,包括配置、分支管理、日志查看、版本回退等。特别讲解了如何部分拉取代码、暂存代码、删除日志等特殊需求的操作。通过实例和图解,帮助读者更好地理解和使用 Git。文章强调了 Git 的细节和注意事项,适合初学者和有一定基础的开发者参考。
53 1
[Git]入门及其常用命令
|
1月前
|
测试技术 持续交付 开发工具
Git版本控制在团队协作中具有重要作用
Git版本控制在团队协作中具有重要作用
34 1
|
1月前
|
数据可视化 开发工具 git
如何解决 Git 版本控制系统中冲突的问题?
在Git版本控制系统中,冲突是指在合并或拉取操作时,两个或多个开发者对同一文件的同一部分进行了不同的修改,导致Git无法自动确定应该采用哪种修改。
38 1
|
1月前
|
存储 项目管理 开发工具
掌握Git版本控制,提升团队协作效率
掌握Git版本控制,提升团队协作效率
36 0
|
1月前
|
开发工具 git
掌握Git版本控制,提升团队协作效率
掌握Git版本控制,提升团队协作效率
|
1月前
|
开发工具 git 开发者
|
1月前
|
开发工具 git 开发者
提升Git效率:掌握这5个高级命令
【10月更文挑战第17天】
65 0
|
开发工具 git
Git常用命令
Git常用命令
195 0
Git常用命令