名词解释:
版本库(Repository); stage(或者叫index)的暂存区; 工作区
1.git 创建ssh key
ssh-keygen -t rsa -C "[email protected]"
2.关于回退版本
- 退回到某个版本
git reset --hard HEAD^ (HEAD~100)
- 退回之后再恢复到某个版本
git reset --hard 3628164(版本号不用写全)
git reset HEAD <file>可以把暂存区的修改撤销掉(unstage),重新放回工作区
- 用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”
git checkout -- file (当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。把误删的文件恢复到最新版本)
当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,就回到了场景1,第二步按场景1操作
3.关于查看历史
- git查看提交历史
git log
git log --graph 命令可以看到分支合并图
- 查看命令历史
git reflog
4.关于分支
- 创建dev分支,然后切换到dev分支
git checkout -b dev origin/dev
- 合并分支
git merge 合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并
git fetch 从远程主机上下拉分支
git pull 从远程主机上下拉分支。并与本地分支合并。相当于git fetch+git merge
- 删除分支
git branch -d dev
git branch -D <name>强行删除(丢弃)一个没有被合并过的分支
- 指定本地dev分支与远程origin/dev分支的链接
git branch --set-upstream-to=origin/dev dev
5.关于使用stash
- 查看暂存区列表
git stash list
- 栈出暂存区
git stash pop
git stash apply 恢复后,stash内容并不删除,你需要用git stash drop来删除;
- 有多次stash时,恢复指定的stash
git stash apply stash@{0}
15.关于标签
- 打一个新标签:
git tag <name> <commit-id>
git tag v0.9 f52c633
- 用-a指定标签名,-m指定说明文字:
git tag -a v0.1 -m "version 0.1 released" 1094adb
- 查看所有标签
git tag
- 查看某一个标签的信息
git show <tagname>
- 删除标签
git tag -d v0.1
- 操作远程标签
git push origin <tagname>可以推送一个本地标签;
git push origin --tags可以推送全部未推送过的本地标签;
git tag -d <tagname>可以删除一个本地标签;
git push origin :refs/tags/<tagname>可以删除一个远程标签
其他git命令
删除 git rm
查看远程库的信息 git remote ( -v)
ps:若有问题,欢迎指正。