Git简单应用(二)
2016-12-12 本文已影响5人
TW妖妖
1、标签
发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。
Git的标签虽然是版本库的快照,但其实它就是指向某个commit的指针(跟分支很像对不对?但是分支可以移动,标签不能移动),所以,创建和删除标签都是瞬间完成的。
- 列出所有tag
git tag
- 新建一个tag在当前commit
git tag [tag]
- 新建一个tag在指定commit
git tag [tag] [commit]
- 删除本地tag
git tag -d [tag]
- 删除远程tag
git push origin :refs/tags/[tagName]
- 查看tag信息
git show [tag]
- 提交指定tag
git push [remote] [tag]
- 提交所有tag
git push [remote] --tags
- 新建一个分支,指向某个tag
git checkout -b [branch] [tag]
2、日志操作
git log
3、撤销
- 恢复暂存区的指定文件到工作区
git checkout [file]
- 恢复某个commit的指定文件到暂存区和工作区
git checkout [commit] [file]
- 恢复暂存区的所有文件到工作区
git checkout .
- 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变
git reset [file]
- 重置暂存区与工作区,与上一次commit保持一致
git reset --hard
- 重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变
git reset [commit]
- 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致
git reset --hard [commit]
- 重置当前HEAD为指定commit,但保持暂存区和工作区不变
git reset --keep [commit]
- 新建一个commit,用来撤销指定commit,后者的所有变化都将被前者抵消,并且应用到当前分支
git revert [commit]
- 暂时将未提交的变化移除,稍后再移入
git stash git stash pop
4、SSH密钥
这部分内容引自http://www.jianshu.com/p/b238de250c06,感谢作者。
为了使本地仓库和远端安全链接,于是到了这一步。
- SH key提供了一种与 GitHub 通信的方式,通过这种方式,能够在不输入密码的情况下,将GitHub作为自己的remote端服务器,进行版本控制。分为如下三步。
- 查看 SSH 密钥是否存在,如果有则备份删除。
cd ~/.ssh
- 生存密钥,过程中可直接按回车。
ssh-keygen -t rsa -C "icorvoh@qq.com"
- 最后得到两个文件:id_rsa 和 id_rsa.pub 并获取其中密钥
cat ~/.ssh/id_rsa.pub
-
在代码托管平台(这里是 Github )中添加公钥。
5、添加远程库
6、远程同步
- 下载远程仓库的所有变动
git fetch [remote]
- 显示所有远程仓库
git remote -v
- 显示某个远程仓库的信息
git remote show [remote]
- 增加一个新的远程仓库,并命名
git remote add [shortname] [url]
- 取回远程仓库的变化,并与本地分支合并
git pull [remote] [branch]
- 上传本地指定分支到远程仓库
git push [remote] [branch]
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的dev分支内容推送的远程新的dev分支,还会把本地的dev分支和远程的dev分支关联起来,在以后的推送或者拉取时就可以简化命令。 - 强行推送当前分支到远程仓库,即使有冲突
git push [remote] --force
- 推送所有分支到远程仓库
git push [remote] --all
确保SSH添加成功,如下图,否则对仓库操作会出现fatal: Could not read from remote repository.
问题。
-
从远程库克隆
7、总结
操作一定要仔细啊。。。。