Git简单应用(二)

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]
    Git简单应用(二)_第1张图片

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 "[email protected]"
  • 最后得到两个文件:id_rsa 和 id_rsa.pub 并获取其中密钥
    cat ~/.ssh/id_rsa.pub
    Git简单应用(二)_第2张图片
  • 在代码托管平台(这里是 Github )中添加公钥。


    Git简单应用(二)_第3张图片

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]
    Git简单应用(二)_第4张图片

    由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的dev分支内容推送的远程新的dev分支,还会把本地的dev分支和远程的dev分支关联起来,在以后的推送或者拉取时就可以简化命令。
  • 强行推送当前分支到远程仓库,即使有冲突
    git push [remote] --force
  • 推送所有分支到远程仓库
    git push [remote] --all
    确保SSH添加成功,如下图,否则对仓库操作会出现fatal: Could not read from remote repository.问题。
    Git简单应用(二)_第5张图片
  • 从远程库克隆


    Git简单应用(二)_第6张图片

7、总结

操作一定要仔细啊。。。。

你可能感兴趣的:(Git简单应用(二))