Git常用命令

转载请注明出处,创作不易:https://github.com/ZhengMaster2020/blogs/
关于Git是什么东西想必大家应该知道它是个什么东西,所以在这里我就不过多地去唠叨那么多。若有不知请移步Git官网,在这里我只想分享一下我自己平时用到的几个常用的Git命令。

初始化项目

$ git init : 表示我们在当前的目录下新建了一个Git代码库(它会在当前目录下生成一个.git的文件夹里面的文件是我们远程仓库的文件)

$ git init [file-name] : 表示我们在当前的目录下新建了一个Git代码库(它会在当前目录下生成一个名为file-name的文件夹,名字可以自己随意起,它会在file-name文件夹下生成一个.git文件夹)

$ git clone url :例如在打开gitbash 输入 git clone git@github.com:ZhengMaster2020/blogs.git 它就会下载链接下的项目到我们的当前目录下,其中url链接既可以是http协议的链接也可以是ssh协议的链接

增加文件和删除文件

$ git add . : 注意add后面是英文的 . 表示吧当前目录下的全部文件添加到暂存区(如有不懂这个这个是什么东西的情看git官方文档)

$git add [file-name1] [file-name2] … : 中括号表示可选的意思, 我们可以添加指定的文件名的文件,添加多少依次就写多少个文件名,那要添加的文件要添加到哪里呢,没错又是这个暂存区,啊哈;

$git add [dir-name] : 添加指定的文件目录到暂存区,里面的子文件目录也会被添加到暂存区中

$ git rm [file-name1] [file-name2] : 表示的是删除指定的文件,这里删除的文件是工作区(不懂的话,还是补文档)中的文件

$ git rm –cache [file-name] : 表示的是停止跟踪指定的文件,那么该文件以后如果变动的话可能无法及时更新

$git mv [文件当前名字] [文件更改后的名字] :表示的是更改文件名

代码提交到本地的仓库

$git commit -m [message]: 将暂存区(也就是相当本地的一个临时空间,我们用add添加的文件一般先放到这里使用commit之后再将文件存储在本地仓库里)了的文件提交的本地的仓库中,完成数据的持久性;

$git commit [file1] [file2]… -m : 将暂存去区指定的的文件提交到仓库区,以便push之需,上传到远程的仓库中(-m 中的m表是message就是每次提交相比之前做了什么改动,是版本升级吗还是功能完善了吗等等)

$git comm -a : 表示提交工作区距离上一次commit之后所做的变化,直接提交到仓库中去,就不需要先提交到暂存区在提交到仓库中去

$ git commit -v : 提交时显示所有diff的信息(这里它会打开vi编辑器来显示信息,需要掌握Linux的文本编辑器的相关知识-命令模式-插入模式-底行命令模式)

分支(branch)相关命令操作(团多合作挺重要)

$ git branch -a :列出所有分支,不管是本地的还是远程的分支

$ git branch -r:列出所有远程的分支,这里的-r ,表的是remote的r,表示远程意思

$ git branch:列出所有的本地分支

$ git branch [branch-name]:新建一个名为branch-name的分支,但是还是在当前的分支上却没有切换到新建的分支上

$ git merge [branch]:这个命令应该是使用较为频繁的一条,merge意思是合并的意思,所以啊,它表示的是把指定的分支合并到当前的分支上去

$ git branch -d [branch-name]:不多BB,这里就是删除个B ranch,删除指定名为branch-name的本地分支

$ git push origin –delete [branch-name]: 哇,这一条好长喔,成条粉肠甘长,其实呢就是删除远程的名为branch-name的分支

查看信息

$ git status: status意思就是状态的意思,所以它便表示显示状态信息,显示什么信息捏,就是有关变更文件的状态信息嘛

$ git log:显示当前分支的版本历史

$ git log –stat: 显示每次commit所发生变更的文件,和commit历史记录

$ git diff:显示暂存区和工作区的差异,挺有用的一条命令

$ git diff –cache [file] :现实暂存区和上一个commit的差异

$ git diff HEAD:现实工作去与当前分支最新commit之间的差异

$ git diff –shortstat “@{0 day ago}”: 这个有点吊了,就是显示今天你自己写多少行代码,当然是在基于git文件下来统计的,都说一天一万行的代码量对应着每月一万元的工资,不知是真的捏还是假的捏

远程仓库同步(这一部分很重要因为与我们的GitHub息息相关)

$ git fetch [remote]:表示的是获取(fetch就是获取的意思)远程仓库的所有变动,并下载到本地目录上,这其中的remote 就是我们远程仓库名, 每个人起的名字都不一样,根据自己所填的远程仓库名的去填

$ git remote -v:显示所有远程仓库

$ git remote show [remote]:显示某个远程仓库的信息

$ git remote add [shortname] [url]:新增一个新得远程仓库名为shortname,url为远程仓库地址,具体要添加到哪里

$ git pull [remote] [branch] :pull为拉的意思, 表示取回远程仓库的变化,并且和本地的分支合并,(它与fetch有何区别呢?请大家自行思考)

$ git push [remote] [branch]:push意推的意思上传本地仓库指定分支到远程仓库, 其中remote为远程仓库名称, branch为本地分支名称

$ git push [remote] –force:force意思是迫使,强迫,表示强推本地分支到远程仓库,及时和远程仓库有冲突等情况

$ git push [remote] –all : 一次性推送所有本地分支到远程仓库,有多少推多少

$ git checkout [file]:恢复暂存区的指定文件到工作区

$ git checkout . :恢复暂存区的所有文件到工作区

$ git reset –hard:重置暂存区与工作区,并于上一次commit的变化保持一致

$ git stash:暂时将为提交的的变化移除

好了本次的分享心得就到这里,关于git的使用命令还是有很多滴,这些命令涉及到很多方面和功能,在日常生活如若需要用到其他的命令我们可以自行再去网上搜索一下,不必把所有的命令都弄得很熟悉,熟悉常用的就行。还有其他常用的命令我在更新。

    原文作者:ZhengMaster2020
    原文地址: https://segmentfault.com/a/1190000019372823
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞