Git指令合集大礼包

Git是管理代码的一个工具,可以保证代码版本迭代的连续性。先来介绍下,有哪些状态。

未被Git跟踪的状态为unstage状态,而已被Git跟踪的状态为stage状态,包括staging状态和staged状态。

untrack files or changed but not updated:第一个是指尚未被git所管理的文件,这种一般是新建了一个文件,从来没有被git管理过。第二个是指文件被git管理,并且发生了改变,但改动还没被git管理。意思是,这次对这个文件做了修改,还没有把改动告知git。这两种情况都称unstage状态。

staging是commit和未管理之间的一个状态,也叫index状态。就是git已经管理了这些改动,但是还没完成提交,这个时候改动还在暂存区里。

changes to be commited是指进入staged状态的文件,这个时候已经将改动保存在了本地仓库里。
注意:.gitignore中的文件,不会出现在以上三个状态中。

 

下面介绍一些git中常见的命令:

1. 新建代码

(1)在当前目录新建一个Git代码库

git init

(2)更多的时候我们会直接将github上的仓库项目克隆到本地

git clone [url] 

这里url可以用http或者ssh的形式都可以,但是ssh的话需要进行配置。

 

2. 添加/删除文件

(1)添加当前目录的所有文件到暂存区  

git add .

注意:.和add之间有空格,.表示当前路径

(2)也可以添加指定的文件到暂存区

git add [file1] [file2] ...  

 (3)  删除文件,并删除放入缓冲区

git rm [file1] [file2] ...

(4) 停止追踪指定文件,但该文件保留在工作区

git rm --cached [file]

这里就是删除了git对该文件的更新,但是本地的修改还是有的。

 

3. 提交代码

(1)提交暂存区文件到本地仓库

git commit -m'message'

(2)同样可以提交指定的文件到本地仓库

git commit [file1] [file2] ... -m'message'

(3)提交时显示所有diff信息

git commit -v 

(4)提交工作区自上次commit之后的变化,直接到仓库区

git commit -a 

这里会跳过add步骤直接提交到本地仓库。

 

4. 分支 

git对分支的管理也需要格外注意,修改代码前注意在目前处于哪个分支。

(1)列出所有本地和远程分支 a代表all

git branch -a 

(2) 列出所有本地分支

git branch 

(3) 列出所有远程分支 r代表remote

git branch -r  

(4) 有时候需要在开发过程中新建一个分支

git branch [new-branch-name]

此时,仍旧会停留在当前分支上。

(5) 有时候需要新建分支并切换到新建分支上 这里使用checkout

git checkout -b [new-branch-name]

(6) 删除本地分支

git branch -d [branch-name]

(7)  删除远程分支

git push origin --delete [branch-name]

(8) 开发过程中,需要切换分支

git checkout [branch-name]

(9) 当开发到一定程度后,可能需要合并两个分支

git merge [branch-name]

即合并指定的分支到当前分支。

 

5.查看信息

(1) 查看有更新的文件,常用于每次add文件前,看有哪些更新需要提交到暂存区

git status

(2) 显示当前分支的版本历史

git log

(3) 显示工作区于与暂存区的代码差异

git diff

(4) 显示暂存区上一次commit的代码差异

git diff --cached [file]

(5) 显示工作区与当前分支最新commit之间的代码差异

git diff HEAD

注意以上三个查看代码差异的命令区别。

 

6. 远程同步

(1) 增加一个新的远程仓库,并命名

git remote add [shortname] [url]

这里 shortname可以是origin或者upstream等。 

(2) 上传本地仓库到远程仓库

git push [remote] [branch]

常见同步本地代码到自己的远程仓库master分支:git push origin master

(3) 从远程仓库拉取变化,并和本地分支进行合并

git pull [remote] [branch]

常见拉取上端代码master分支代码到自己本地仓库:git pull upstream master

 

7. 撤销

(1) 重置工作区和暂存区,与上次commit保持一致

git reset --hard

 主要是对本次工作区修改的内容推翻,需要回撤到修改前的内容。只要没有本地commit就可以退回。

(2) 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致

git reset --hard [commit]

注意:这里可以加上一个commit的编号,回退到指定版本。commit编号可以用git log来查看。

(3) 重置当前HEAD为指定commit,但保持暂存区和工作区不变

git reset --keep [commit]

主要用于可能想要丢弃某些之前的commit内容,但对于本次修改的内容保留。

(4) 暂时将未提交的变化移除,稍后再移入

git stash 

git stash pop

用于在修改本地前,忘记拉取上端最新代码。当修改后再拉取会有本地冲突,此时,需要先把本地修改的内容移除后,再拉取。拉取完成后,再移入修改的内容。

 

介绍了这么多命令,平时在开发过程当中主要记住下面这张图。

在每次修改代码之后,从workspace先add到暂存区里,再commit提交到自己本地的仓库内,最后再push到远程仓库中。

每次开始写代码时,从远程仓库pull拉区一下最新的代码,保证本地代码时最新的。

 

参考资料:

1. https://www.cnblogs.com/miracle77hp/articles/11163532.html

2. https://www.cnblogs.com/gavincoder/p/9073368.html

3. https://blog.csdn.net/lxw198902165221/article/details/89228458

4. https://www.jianshu.com/p/46ffff059092

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值