Git命令| 青训营笔记

115 阅读4分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第 2 篇笔记

git基本命令

初始化:创建一个git仓库,创建之后就会在当前目录生成一个.git的文件

git init

添加文件:把文件添加到缓冲区

git add filename

添加所有文件到缓冲区(从目前掌握的水平看,和后面加“.”的区别在于,加all可以添加被手动删除的文件,而加“.”不行):

git add .

git add --all

git rm filename

删除文件

提交:提交缓冲区的所有修改到仓库(注意:如果修改了文件但是没有add到缓冲区,也是不会被提交的)

git commit -m

"提交的说明"

commit

可以一次提交缓冲区的所有文件

git log

查看日志

 

git reset

版本回退:可以将当前仓库回退到历史的某个版本

git reflog

查看命令历史:查看仓库的操作历史

git分支管理

查看分支的情况,前面带*号的就是当前分支

git branch

创建分支

git branch 分支名

切换当前分支到指定分支

git checkout 分支名

切换当前分支到指定分支

git checkout -b 分支名

创建分支并切换到创建的分支

git merge 分支名

git merge 分支名

git branch -d 分支名

删除分支

git tag 标签名 版本号

新建标签,默认为最新版本,后面加上版本号参数则可指定版本增加标签

git tag

查看所有标签:

git show 标签名

查看标签的详细信息 从远端库更新内容到本地(相当于svn的update),

远程仓库相关命令

检出仓库: git clone git://github.com/jquery/jquery.git

查看远程仓库:git remote -v

添加远程仓库:git remote add [name] [url]

删除远程仓库:git remote rm [name]

修改远程仓库:git remote set-url --push [name] [newUrl]

拉取远程仓库:git pull [remoteName] [localBranchName]

推送远程仓库:git push [remoteName] [localBranchName]

版本(tag)操作相关命令

查看版本:git tag

创建版本:git tag [name]

删除版本:git tag -d [name]

查看远程版本:git tag -r

创建远程版本(本地版本push到远程):git push origin [name]

删除远程版本: git push origin :refs/tags/[name]

合并远程仓库的tag到本地:git pull origin --tags

上传本地tag到远程仓库:git push origin --tags

创建带注释的tag:git tag -a [name] -m 'yourMessage'

git pull:从其他的版本库(既可以是远程的也可以是本地的)将代码更新到本地

git add:是将当前更改或者新增的文件加入到Git的索引中,加入到Git的索引中就表示记入了版本历史中,这也是提交之前所需要执行的一步

git rm:从当前的工作空间中和索引中删除文件,

git commit:提交当前工作空间的修改内容,类似于SVN的commit命令,

git push:将本地commit的代码更新到远程版本库中,

git log:查看历史日志,该功能类似于SVN的log

git revert:还原一个版本的修改,必须提供一个具体的Git版本号,

git branch:对分支的增、删、查等操作

git checkout:Git的checkout有两个作用,其一是在不同的branch之间进行切换

checkout new_branch'就会切换到new_branch的分支上去;另一个功能是还原代码的作用,app/model/user.rb'就会将user.rb文件从上一个已提交的版本中更新回来,未提交的内容全部会回滚

git rebase:用下面两幅图解释会比较清楚一些,rebase命令执行后,实际上是将分支点从C移到了G,这样分支也就具有了从C到G的功能

git reset:将当前的工作目录完全回滚到指定的版本号,假设如下图,我们有A-G五次提交的版本,其中C的版本号是 bbaf6fb5060b4875b18ff9ff637ce118256d6f20,我们执行了'git reset bbaf6fb5060b4875b18ff9ff637ce118256d6f20'那么结果就只剩下了A-C三个提交的版本

git stash:将当前未提交的工作存入Git工作栈中,时机成熟的时候再应用回来,这里暂时提一下这个命令的用法,后面在技巧篇会重点讲解

git config:利用这个命令可以新增、更改Git的各种设置

git tag:可以将某个具体的版本打上一个标签,这样你就不需要记忆复杂的版本号哈希值了