一、git是什么git
git是分布式版本管理工具,一台电脑既能够是客户端,也能够是服务端。工做过程当中能够断开网络。github
git中的三个概念:网络
一、版本库:在初始化git版本库以后会生成一个隐藏的文件, .git能够将该文件理解为git的版本库repository;app
二、工做区:项目目录;分布式
三、暂存区:.git目录中的index文件就是暂存区,同时,git还为咱们自动生成一个master分支以及指向该分支的指针head在.git文件夹中。工具
git命令行使用spa
1.1 git init 建立版本库 (建立本地版本库)命令行
1.2 git add filename 提交到版本库暂存区指针
1.3 git commit -m '注释' 将暂存区提交到版本库blog
1.4 git log 查看版本库提交历史(能够查询commit提交版本号)
1.5 git reset --hard HEAD^ 版本回退 首先,Git必须知道当前版本是哪一个版本,在Git中,用`HEAD`表示当前版本,也就是最新的提交`1094adb...`(注意个人提交ID和你的确定不同),上一个版本就是`HEAD^`,上上一个版本就是`HEAD^^`,固然往上100个版本写100个`^`比较容易数不过来,因此写成`HEAD~100`。
1.6 git reset --hard <commit it> 版本回退, <commit it> 指定版本号
1.7 git reflog 查询命令历史
2 工做区和暂存区
2.1 每次修改,若是不用`git add`到暂存区,那就不会加入到`commit`中。
2.2 git status 查看工做区和暂存区的状态信息
2.3 git checkout -- file 工做区的撤销修改 (没有-- 就表示切换到分支了)
2.4 git reset HEAD <file>暂存区的修改撤销掉,从新放回工做区
2.5 git rm <file> 删除文件 而后commit提交
3 远程仓库
3.1 git remote add origin git@github.com:zjhlovewtr/test.git 版本仓库与本地仓库进行关联
3.2 git push -u origin master 把本地仓库内容推送到远仓仓库 因为远程库是空的,咱们第一次推送`master`分支时,加上了`-u`参数,Git不但会把本地的`master`分支内容推送的远程新的`master`分支,还会把本地的`master`分支和远程的`master`分支关联起来,在之后的推送或者拉取时就能够简化命令。
3.3 git push origin master 修改后推送
3.4 git clone git@github.com:zjhlovewtr/test.git 从远程仓库克隆一个仓库到本地(不须要git init操做)
4 git 分支
git branch <branchName> 建立分支
git checkout <branchName>切换分支
git merge <branchName> 合并分支(branch name为目标分支)
git branch -d <branchNanme> 删除分支
git checkout -b <branchNanme>建立+切换分支
5 冲突解决
先文件修改
而后git add <fileName>
而后git commit -m '分支修改'
最后在合并
git merge --no-ff -m "merge with no-ff" dev 普通分支合并 请注意`--no-ff`参数,表示禁用`Fast forward`:
bug 分支
git stash 保留修改现场状况
git stash list 查询工做现场状况
`git stash apply`恢复,可是恢复后,stash内容并不删除,你须要用`git stash drop`来删除;
git stash pop 恢复的同时把stash内容也删了
6 标签管理
git tag v1.0 建立标签
git tag 查询全部标签
`git push origin <tagname>`能够推送一个本地标签;
`git push origin --tags`能够推送所有未推送过的本地标签;
`git tag -d <tagname>`能够删除一个本地标签;
`git push origin :refs/tags/<tagname>`能够删除一个远程标签。