avatar

目录
日常工作中常用的Git操作汇总

Git是当下应用最为广泛的VCS, 日常的开发工作过程中总免不了要和它打交道,以下是一些工作中常用的git命令操作的记录整理

1. 什么是Git

众所周知,Git是由Linus Torvalds最初开发的分布式版本控制系统(Version Control System)软件。其最初是作为帮助解决Linux内核开发代码管理问题这一目的而问世,是一种用来替代BitKeeper的过渡方案。相比于SVN这样集中式的VCS, Git允许团队中的开发者们在本地建立代码仓库和分支,并提交代码到本地仓库,最终再推送到远程仓库并合并分支。其他成员再通过拉取远程仓库代码的方式以获取全部更新。其一大特点便是支持离线工作。

2. Git的基本工作流程

一图以蔽之

Git基本工作流程

其中本地仓库又分为

  • 工作区(working tree) 磁盘上的实际文件目录
  • 暂存区(index/stage) 缓存区,保存本地的临时改动
  • 仓库区(repository) 仓库区,保存有本地真正已提交的改动

3. Git的日常常用操作

Code
1
1. git init

初始化本地目录为一个git仓库,通常当前目录会有一个隐藏的 .git 文件夹作为标志

Code
1
2. git add <filename>

添加某个具体文件到git缓存区

Code
1
3. git commit -m "commit message"

将Git暂存区中的文件提交到本地仓库,-m 参数后带上提交信息

Code
1
4. git fetch

将远程仓库的最新内容拉取到本地

Code
1
5. git merge

将拉取到的内容与本地内容进行合并

Code
1
6. git pull

git pull可以看作是 git fetch + git merge, 即拉取远程仓库最新内容并合并到本地

Code
1
7. git push origin <branch>

推送本地仓库中提交的新内容到远程仓库的指定分支上

Code
1
8. git rm <filename>

删除工作区中当前指定文件,并将改动保留到暂存区中去

Code
1
9. git mv <filename> <new_filename>

重命名工作区中的指定文件

Code
1
10. git clone <url>

将指定路径的远程仓库克隆到本地文件目录

Code
1
11. git checkout <[filename|.]>

放弃暂未加入到缓存区的本地文件修改,重新代以远程仓库版本,可以指定具体某个文件

Code
1
12. git status

查看当前本地暂存区的状态

Code
1
13. git log --author=someone

查看版本仓库提交记录,author 参数可以指定具体看某个人的记录

Code
1
14. git diff <commit_id_1> <commit_id_2>

比较两次提交之间的异同

Code
1
15. git reset [--mode] <commit_id>

有时候可能会手抖将一些错误内容给commit了,这时想回滚掉错误提交就可以使用 git reset命令加commit的SHA1值 回退到具体某一次的commit. 其中mode即模式,默认情况下是mixed模式,还有另外两种hard 和 soft 模式,他们之间的区别可以另查资料。

Code
1
16. git revert <commit_id>

和git reset不同的是,git reset是指定回滚到某个具体的提交版本,而git revert是回滚掉某个具次具体的提交版本,比如当前有

Code
1
2
3
graph LR
A-->B
B-->C

三次提交记录,其中B提交包含错误,不想要了,那么就可以git revert “B的commit id” 移除掉B提交,并且这将新建一个commit,将HEAD指针指向C提交的下一次位置。形如:

Code
1
2
3
graph LR
A-->C
C-->new_commit
Code
1
17. git config

可以对当前的git仓库作一些配置修改,配置文件放置在 ~/.gitconfig中


注:图片资源来自网上,侵删

文章作者: JanGin
文章链接: http://jangin.github.io/2020/03/15/summary-of-git-commands-commonly-used-in-daily-work/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 JanGin's BLOG

评论