GIT命令总结,工欲善其事,必先利其器。

写在前面:
命令中的符号解释(符号本身均不需要输入):
#:后边是一些常用的指令,说明文字在指令后行。
##:是其上方#指令的一些常用拓展。
[]:是根据实际需要输入的信息,比如文件名称,分支名称等。
{}:可选的拓展命令字段,一般是在原命令的基础上拓展。
1.创建版本库
#git init
初始化git版本库,把一个目录变成Git可以管理的仓库
#git add [file]
把文件添加到仓库,实际上就是把文件修改添加到暂存区(stage or index)
#git commit
把文件提交到仓库,实际上就是把暂存区的所有内容提交到当前分支
##git commit -m
-m后面输入本次提交的说明
2.版本控制管理
#git status
命令可以让我们时刻掌握仓库当前的状态
#git diff [file]
查看尚未暂存的文件更新了哪些部分,此命令比较的是工作目录(Working tree)和暂存区域快照(index)之间的差异,也就是修改之后还没有暂存起来的变化内容。
##git diff HEAD -- [file]
查看工作区和版本库里面最新版本的区别
/**begin**/
/**git diff 详解**/
a、查看尚未暂存的文件更新了哪些部分,不加参数直接输入
    #git diff
此命令比较的是工作目录(Working tree)和暂存区域快照(index)之间的差异
也就是修改之后还没有暂存起来的变化内容。
b、查看已经暂存起来的文件(staged)和上次提交时的快照之间(HEAD)的差异
    #git diff --cached
    #git diff --staged
显示的是下一次commit时会提交到HEAD的内容(不带-a情况下)
c、显示工作版本(Working tree)和HEAD的差别
    #git diff HEAD
d、直接将两个分支上最新的提交做diff
    #git diff topic master 或 git diff topic..master
e、输出自topic和master分别开发以来,master分支上的changed。
    #git diff topic...master
Changes that occurred on the master branch since when the topic
 branch was started off it
f、查看简单的diff结果,可以加上--stat参数
    #git diff --stat
g、查看当前目录和另外一个分支的差别
    #git diff test
显示当前目录和另一个叫'test'分支的差别
    #git diff HEAD -- ./lib
显示当前目录下的lib目录和上次提交之间的差别(更准确的说是在当前分支下)
h、比较上次提交commit和上上次提交
    #git diff HEAD^ HEAD
i、比较两个历史版本之间的差异
    #git diff SHA1 SHA2
/**end**/
#git log
显示从最近到最远的提交日志
##git log --pretty=oneline
格式化显示的日志内容,变为一行一行显示
##git log --graph
可以查看分支合并图
##git log --graph --pretty=oneline --abbrev-commit
查看分支的合并情况
#git reset --head HEAD^
版本回退,从现有版本回退到之前某个版本,HEAD表示当前版本,HEAD^表示上一个版本,HEAD^^表示之前两个版本,HEAD~100表示上100个版本。reset不仅可以回退,如果想再回到之后的版本(前提是从之后版本要存在),只要找到找到它对应的commit id即可。
##git reset --head 3423423
回退到某个commit id 版本,可以是之前或者之后的任何版本。
##git reset HEAD [file]
把暂存区的修改回退到工作区,撤销暂存区的修改
#git reflog
查看记录的每一次指令,可以用此方法找到某些版本的commit id
#git checkout -- [file]
撤销在工作区的修改。自修改后还没有被放到暂存区,撤销修改回到版本库的状态。已经添加到暂存区,撤销回到暂存区的状态。注意此命令中的--非常重要。
3.远程仓库
#ssh-keygen -t rsa -C [email]
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可。如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
#git remote {-v}
查看远程仓库信息, -v可查看更多详细信息
##git remote add origin [git project url]
在git工程地址中使用自己的GitHub账户名,添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。
#git push -u origin master
把本地仓库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。以后再推送就只需要git push origin master了。
#git clone [git project url]
从远程仓库克隆到本地
4.分支管理
#git checkout -b [branch name]
创建一个分支并切换到该分支,相当于如下两个命令
#git branch [branch name]
创建一个分支
#git checkout [branch name]
切换到某个分支
#git branch
查看所有分支,当前分支会显示*号
#git merge [branch]
合并指定分支到当前分支
##git merge --no-ff -m [massage] [branch]
禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
#git branch -d [branch]
删除某个分支
#git stash
保存工作区现场
##git stash list
查看工作现场
##git stash apply
恢复工作现场,stash内容并不删除
##git stash drop
删除stash内容
##git stash pop
恢复的同时并删除stash内容
/**begin**/
/**多人合作情况下的工作模式**/
#git push origin [branch]
推送自己的分支,如果失败说明远程的分支有更新
#git pull
将远程分支拉到自己的分支,如果失败则说明有冲突或者没有关联到本地分支。解决完冲突以后再次推送本地分支。
#git branch --set-upstream [branch] origin/[branch]
设置本地分支和远程分支的关联连接
/**end**/
5.标签管理
#git tag {-a} [tag name] {-m "massage"} {commit id}
创建一个新标签,并设置对应的标签名称。可选择某个commit并为其创建一个标签。{-a}为指定标签名,{-m "massage"}指定说明文字。
##git tag -d [tag]
删除某个标签
#git tag
查看所有标签
#git show [tag]
查看标签的详细信息
#git push origin [tag]
推送某个标签到远程
##git push origin --tags
将本地所有未推送的标签推送到远程
##git push origin :refs/tags/[tag]
删除远程的某个标签,如果失败则检查本地的该标签是否删除










  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值