前言:
这篇博客是笔者一遍学习廖雪峰老师的博客一边总结下来的语句,仅做学习用途。另外内容作了很大的精简,所以如果没有看过廖雪峰的git教程或者相关的git教程,可能会对这些语句不大理解,所以推荐阅读廖雪峰老师的git教程。
基本语句:
pwd
:显示当前路径
cd 目录名
: 进入某一个目录
mkdir 文件名
:在当前路径下新建一个指定名字的空文件夹
ls
:显示当前路径下的文件及文件夹
cat 文件名
查看当前目录下某一文件的内容
简单示例:
创建版本库:
git init
:这个目录变成Git可以管理的仓库
常用的git语句总结:
删除和修改
git status
:查看仓库当前的状态
git add 文件名
: 将文件从电脑磁盘添加到git的暂存区 (该文件要在当前目录下)
git commit -m “一些简要说明”
: 将git暂存区的文件提交到git的工作区,引号里的内容是对此次提交修改的一些说明
git diff 文件名
:查看磁盘中的文件和git暂存区里的不同(该文件必须添加到git暂存区)
git log
:显示从最近到最远的提交日志
git reset --hard HEAD^
:将本地仓库的版本回退到上一个版本,(HEAD表示当前版本,^的数量表示回退的版本的次数,如HEAD^^^
表示回退到上上上个版本,也可以写成HEAD~3
)
git checkout -- 文件名
:撤销某一文件的修改,有两种情况:
第一种是修改后还没有被添加到git暂存区,现在,撤销修改就回到和版本库里一模一样的状态;
第二种是已经添加到暂存区后,然后又作了修改(但是修改后没有添加git暂存区),现在,撤销修改就回到添加到暂存区后的状态。
git reset HEAD 文件名
: (使用该命令的前提是,该文件已经被commit到git工作区至少一次) 文件做了修改,然后又添加到了git暂存区,使用该命令,可以把暂存区的修改撤销掉。
rm 文件名
: 从电脑磁盘里删除某文件(如果不小心删错了,可以用git checkout -- 文件名
撤销删除)
git rm 文件名
从git的版本库(工作区)里删除某文件。(这时候电脑磁盘里还存在该文件,相当于删除了该文件的历史版本,不能用git checkout -- 文件名
撤销删除)
远程仓库
git remote add origin git@github.com:账户名/仓库名
把本地仓库和GitHub远程仓库相关联,以便将本地仓库的内容推送到远程仓库;或者将远程仓库的内容克隆到本地。(账户名写GitHub的账号名,仓库写GitHub一个以存在的仓库名,没有就现在登录GitHub新建一个)如果关联失败,说明没有设置好SSH秘钥。
(ps: 这里实际上是把远程仓库命名为 “origin”,当然,这名字是可以改的,但一般习惯上都将远程仓库命名为“origin”。所以后面的语句都默认远程仓库命名为“origin” 。注意不要与gitHub上的远程仓库名称混淆)
举个例子:我这里将远程仓库取名为“hahaha” ,而关联的gitHub仓库名字为“ideaGit” 。个人的理解是:”hahaha”是git本地给关联的GitHub仓库“ideaGit”取得别名
git remote remove origin
:解除本地仓库和GitHub远程仓库的关联
git push origin master
:关联后,可以使用该命令,将本地仓库(git工作区)的内容推送到相关联的远程库。 如果是第一次推送使用:git push -u origin master
命令
git clone git@github.com:账户名/仓库名.git
:将指定远程仓库里的全部内容复制到本地仓库。
分支管理
git checkout -b 分支名
:创建一个分支,并切换到该分支
git checkout 分支名
创建一个分支,但不切换到此分支
git branch -d 分支名
:删除分支
git branch -D
:强制删除某个分支
git branch
: 查看所有分支,当前分支前会标有有个*号
git checkout 分支名
切换到一个已有的分支
git merge 分支名
合并指定分支到当前分支
git stash
:将当前分支的工作台的内容给隐藏起来(效果是:git status
显示工作台是安静的 ),适用于你当前的分支上的工作未完成,不能提交当前分支,但又需要立即切换到其他分支的情况。
git stash list
: 查看之前隐藏的工作台的列表
git stash apply
: 恢复之前stash的内容。恢复后,还需要手动用git stash drop
语句把stash的内容删除,(实际上,隐藏工作区的原理是:把当前git的工作现场的内容保存到别的地方,所以恢复工作区后还是有必要删除之前stash保存到别处的文件)
git stash pop
恢复stash内容的同时自动删除stash的内容
推送和抓取
git remote -v
:查看远程库的信息
git branch --set-upstream 本地分支名 远程库/远程分支名
: 将本地分支与远程库的远程分支相链接,本地分支名和远程分支名最好最好保持一致。
如:git branch --set-upstream master origin/master
将本地的master分支与远程库的master分支,这样将可以推送master分支的内容推送到远程库的master分支。
git push origin 本地分支名
: 将本地分支的内容推送到远程库的相应的分支
git pull
:将当前本地分支对应的远程库的分支的最新内容抓取到本地,然后会自动尝试将抓取到远程库分支里的内容与本地分支里的内容进行自动合并,如果合并冲突了,需要手动解决冲突,然后重新commit。
标签管理
git tag
:查看已经创建的标签
git tag 标签名 (commit id)
:创建一个标签。(括号内的commit id为可选内容,不写,默认为HEAD,也可以选择一个之前commit过的一个commit id与该标签绑定)
git tag -a 标签名 -m "标签信息..."
:可以指定标签信息
git show 标签名
查看某个标签的信息
git push origin 标签名
将某个标签推送到远程库
git push origin --tags
将本地没有推送过的标签全部推送到远程库
git tag -d 标签名
: 删除本地的一个标签
git push origin :refs/tags/标签名
:删除一个远程库的标签