常用git命令总结

以前公司都是使用svn作为公司的版本控制,由于现在需要使用git,所以前不久断断续续花了几天时间学了一些git版本控制器的一些命令。我自己整理了一些比较常用的命令,有兴趣的同学可以参考一下。

git命令:

暂存区(这是git中一个很重要的概念,除此外还有工作区和远程):gitadd时将文件add到暂存区,gitcommit时将文件从暂存区提交到分支或主干上。只有add到暂存区上了,才会在commit时提交到分支中。

pwd:命令用于显示当前目录

mkdir:新建文件

gitinit:该命令把上面新建的目录变成Git可以管理的仓库

ls-ah:显示隐藏的.git文件

gitadd+文件名(含后缀):把文件(该文件必须存在才能add进去)添加到仓库(这里是添加到暂存区),可以同时add多个文件:gitadda1.txta2.txt,a1和a2都添加进去了

gitadd*:将所有修改都加到暂存区

gitcommit-m"hhhh":将上面添加的文件提交到仓库(提交到分支),-m:是提交说明,“hhhh”是说明的内容

gitstatus:查看仓库当前的状态,哪些文件被修改过以及有没有被提交

gitdiff+文件名(含后缀):查看文件中被修改的内容(添加的、删除的、修改的等等)

cat+文件名(含后缀):查看文件中的所有内容

gitlog:该命令显示从最近到最远的提交日志

gitlog--pretty=oneline:显示从最近到最远的提交日志,每次日志显示在一行中,只显示版本号和备注

gitreset--hardHEAD^:返回上一个版本。HEAD:表示当前版本;HEAD^:表示上一个版本;HEAD^^:表示上上个版本;HEAD~100:表示往上第100个版本

gitreset--hard+版本号:返回到指定的版本,版本号不需要写全,只需要写前面几位就可以,git会自动查找到相应的版本号

gitreflog:用来记录你的每一次命令

gitcheckout--+文件名(含后缀):把文件在工作区的修改全部撤销

gitresetHEAD+文件名(含后缀):把文件在暂存区的修改全部撤销

gitrm+文件名(含后缀):删除文件,删除以后,gitadd和gitcommit就ok了

在git上添加sshkey:

1、ssh-keygen-trsa-C"自己在github上注册的邮箱地址"该命令时生成sshkey的公钥和私钥。

2、vi.ssh/id_rsa.pub:该命令时查看公钥密码。

3、然后在https://github.com/settings/ssh中addsshkey,将获取的公钥添加上去就好了。

gitremoteaddorigin+自己git项目地址:添加远程库,必须在自己新建的git项目下执行该命令

gitclone+项目git地址:从远程克隆项目下来

gitpush-uoriginmaster:把本地库的内容推送到远程,用gitpush命令,实际上是把当前分支master推送到远程。以后本地提交后,直接食用:gitpushoriginmaster该命令上传分支(由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。)

gitcheckout-b分支名称:gitcheckout命令加上-b参数表示创建并切换分支,相当于gitbranch分支名称(创建分支)+gitcheckout分支名称(切换分支)

gitbranch:列出所有的分支,当前分支前面会标一个*

gitmerge分支名称:合并分支,必须先切换到需要合并的分支上,才能合并

gitbranch-d分支名称:删除分支

gitbranch-D分支名称:强制删除分支

gitlog--graph--pretty=oneline--abbrev-commit:产看分支合并情况

gitmerge--no-ff-m"mergewithno-ff"分支名称:--no-ff参数,表示禁用Fastforward,可以看到分支信息

gitstash:把当前工作现场“储藏”起来,等以后恢复现场后继续工作

gitstashlist:列出工作现场

gitstashapply:恢复stash

gitstashdrop:删除stash

gitstashpop:恢复并删除stash

gitremote:查看远程库信息

gitremote-v:查看远程库信息(详细信息)

多人协作的工作模式通常是这样:

首先,可以试图用gitpushoriginbranch-name推送自己的修改;

如果推送失败,则因为远程分支比你的本地更新,需要先用gitpull试图合并;

如果合并有冲突,则解决冲突,并在本地提交;

没有冲突或者解决掉冲突后,再用gitpushoriginbranch-name推送就能成功!

如果gitpull提示“notrackinginformation”,则说明本地分支和远程分支的链接关系没有创建,用命令gitbranch--set-upstreambranch-nameorigin/branch-name。

这就是多人协作的工作模式,一旦熟悉了,就非常简单。

gittag+标签名称:创建标签

gittag:查看标签

gittag+标签名称+commitId:创建指定commitId的标签

gitshow+标签名称:查看某个标签

gittag-a标签名称-m"version0.1released"commitId:创建带有说明的标签,-a指定标签名,-m指定说明文字,commitId为自己的ID号

gittag-d标签名称:删除标签

gitpushorigin<tagname>:推送某个标签到远程

gitpushorigin--tags:一次性推送全部尚未推送到远程的本地标签

gitpushorigin:refs/tags/<tagname>:远程删除标签(需要先本地删除标签)

gitconfig--globalcolor.uitrue:让Git显示颜色,会让命令输出看起来更醒目

gitconfig--globalalias.ststatus:配置别名,将status配置成st,敲命令时gitstatus就可以敲成gitst了

想要学习git命令的同学,我这里给大家推荐一个地址,可以供大家去学习(学习起来非常简单):http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

请勿转载,谢谢!!!

git

相关推荐