参考自廖雪峰的官方网站:
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/
添加文件到本地暂存区:
添加单个文件
1git add hello.md添加多个文件[用空格区分]
1git add hello.md word.md //此处添加了【hello.md】【word.md】
git commit把暂存区的所有内容提交到当前分支:
回车进入vim输入说明文本,按键盘上[esc]输入:wq 保存退出vim
1git commit在提交版本的时候以-m为参,输入说明文本
1git commit -m '本次提交的说明文本'
git diff file:
git log
显示从最近到最远的提交日志
版本回退:
HEAD:表示当前版本,当前分支
HEAD^:上一个版本
HEAD^^:上上一个版本
HEAD~100:往上100个版本
|
|
git checkout – file丢弃工作区的修改:
- 一种是文件自修改后还没有git add添加,现在,撤销修改就回到和版本库一模一样的状态;
- 一种是文件已经git add,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。1git checkout -- <file name>
git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
将本地库与远程库关联
直接从远程库克隆
分支
创建/切换分支:
创建并切换到新创建的分支下
1git checkout -b <name>创建分支
1git branch <name>切换到分支
1git checkout <name>
查看分支
git branch命令会列出所有分支,当前分支前面会标一个号*
|
|
将分支推到远程仓库
在要推到远程仓库的分支下
合并分支
git merge命令用于合并指定分支到当前分支
合并后删除分支
分支没有被合并,如果删除,将丢失掉修改,强行删除
看到分支的合并情况
使用Fast forward模式,删除分支后,会丢掉分支信息
如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
–no-ff参数,表示禁用Fast forward
当工作只进行到一半,还没法提交。但是,必须在现在修复该bug,怎么办?
幸好,Git还提供了一个stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作:
你可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash,用命令:
标签
创建标签
为对应的commit打标签
创建带有说明的标签
查看标签:
查看标签
1git tag查看标签信息
1git show <tagname>
删除标签:
删除本地标签
1git tag -d <tag-name>删除远程标签【1.先将本地标签删除】
1git push origin :refs/tags/tagname
将标签推到远程
git配制
git fetch:相当于是从远程仓库获取最新版本到本地,不会自动merge,需要程序员自己去merge
git pull:从远程仓库获取最新版本,自动merge到本地仓库