工作区和暂存区
工作区:就是你电脑里能看到的目录,就是一个工作区
版本库:工作区有一个隐藏目录'.git',这就是Git的版本库,git的版本库里存了很多东西,其中最重要的就是stage(暂存区),及git为我们自动创建的第一个分支master以及指向masterd的一个指针叫HEAD

简单的理解就是:需要提交的文件修改通通放到暂存区然后一次性提交暂存区所有修改到master。
初始化一个git仓库
将当前目录变为git可以管理的仓库
git init
添加文件到git仓库
分两步,第一步:
git add
,可多次使用
$ git add test1.txt
$ git add test2.txt
第二步:
git commit
,告诉git,把文件提交到仓库
$ git commit -m "修改内容描述文字"
-m 后面输入的是本次提交的说明,可以输入任何内容
查看仓库当前的状态
git status
查看文件修改内容
git diff
版本回退
- 查看提交历史
git log
,以确定回退到哪个版本 - 回退
git reset --hard commit_id
,commit_id版本号
管理修改
Git比其他版本控制系统设计得优秀是因为Git跟踪并管理的是修改而非文件
每次修改,如果不add到暂存区,那就不会加入到commit中
撤销修改
- 撤销工作区的修改内容
git checkout -- file
- 撤销已提交到暂存区的修改内容
-
git reset HEAD file
,撤销修改到工作区 -
git checkout -- file
, 撤销工作区的修改内容
-
- 撤销已提交到版本库的不合适的修改内容,参照版本回退,这里有一个前提是还没有推送到远程库
删除文件
git rm
从版本库中删除文件,用git rm
删除文件,并commit
git rm test.txt
git commit -m "remove test.txt"
删除了本地文件,从版本库中恢复该文件
git checkout -- test.txt
如果一个文件已经被提交到版本库,就永远不用担心误删,但是,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容
关联远程库
想要本地库和远程库相关联,就需要:
- 命令
git remote add origin git@server-name:path/repo-name.git
- 关联后,使用命令
git push -u origin master
第一次推送master分支的所有内容 - 之后就可以使用
git push origin master
推送最新修改
第一次加上-u参数,Git不但会把本地的master分支内容推送到远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后推送或者拉取时就可以简化命令
克隆远程库:
git clone http://…./**.git
查看远程库:
git remote
git remote -v
显示更详细的信息
创建并切换分支
git checkout -b branchname
相当于以下两个命令
- 创建分支:
git branch branchname
- 切换分支:
git checkout branchname
查看当前分支:
git branch
删除分支:
git branch -d branchname
合并分支到当前分支:
git merge name
查看分支合并图
git log --graph
把当前工作现场“储藏”起来
git stash
这样就可以切换到其他分支处理紧急bug
处理完成后,再回到工作分支并:
- 使用
git stash apply
恢复,但是恢复后并不会清除stash中的内容,需要git stash drop
来删除 - 用
git stash pop
恢复的同时把stashn内容也删了
丢弃一个没有被合并过的分支
git branch -D name
,强行删除
创建远程分支到本地
git checkout -b dev origin/dev
查看远程库信息
git remove -v
抓取远程的新提交
git pull
如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建
git branch --set-upstream branch-name origin/branch-name
创建标签
发布一个版本时,我们通常现在版本库中打一个标签,这样就能唯一确定打标签时刻的版本。Git标签是版本库的快照,其实它就是指向某个commit的指针
创建标签的步骤:
- 切换到需要打标签的分支
git checkout branch-name
- 输入命令
git tag v1.0
,就可以打一个新标签
查看所有标签
git tag
删除标签
删除本地标签:git tag -d v1.0
删除远程标签:
- 先从本地删除
git tag -d tagname
- 从远程删除
git push origin :refs/tags/tagname
推送标签到远程
git push origin tagname
一次性推送全部尚未推送到远程的本地标签
git push origin --tags
git-cheat-sheet中列出了git的各种命令,可以打印出来备用。

网友评论