初始化一个Git仓库,使用git init命令。

添加文件到Git仓库,分两步:

  • git add <file>,注意,可反复多次使用,添加多个文件;

  • 使用命令git commit,完成。

  • 要随时掌握工作区的状态,使用git status命令。

  • 如果git status告诉你有文件被修改过,用git diff <file>可以查看修改内容。

  • HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id git reset --hard HEAD^上一版本

  • 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。git log --pretty=oneline

  • 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

  • ,想直接丢弃工作区的修改时,用命令git checkout -- file
  •  文件删了:rm <file>  ,git rm <file>
  • 要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git

    关联后,使用命令git push -u origin master第一次推送master分支的所有内容;

    此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;

  • 克隆一个本地库:如:
     git clone git@github.com:michaelliao/gitskills.git
  • 查看分支:git branch

    创建分支:git branch <name>

    切换分支:git checkout <name>

    创建+切换分支:git checkout -b <name>

    合并某分支到当前分支:git merge <name>

    删除分支:git branch -d <name>

  • 查看到分支的合并情况:
     git log --graph --pretty=oneline --abbrev-commit
  • 查看分支历史:
     git log --graph --pretty=oneline --abbrev-commit
  • 暂时保存:git stash一下,然后去修复bug,修复后,再git stash popgit stash apply或者回到工作现场。
  • git stash list命令看暂时保存区
  • git stash drop来删除保存区
  • 丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除。
    • 查看远程库信息,使用git remote -v

    • 本地新建的分支如果不推送到远程,对其他人就是不可见的;

    • 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;

    • 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;

    • 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name

    • 从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

      • 命令git tag <name>用于新建一个标签,默认为HEAD,也可以指定一个commit id;

      • git tag -a <tagname> -m "blablabla..."可以指定标签信息;

      • git tag -s <tagname> -m "blablabla..."可以用PGP签名标签;

      • 命令git tag可以查看所有标签。

        • 命令git push origin <tagname>可以推送一个本地标签;

        • 命令git push origin --tags可以推送全部未推送过的本地标签;

        • 命令git tag -d <tagname>可以删除一个本地标签;

        • 命令git push origin :refs/tags/<tagname>可以删除一个远程标签。

最新文章

  1. 如何用Azure Web App Services接入微信公众号
  2. Java String.split()小点
  3. webview loadUrl() 弹出系统浏览器解决办法
  4. node.js使用汇总贴
  5. bootstrap使用性能问题
  6. jsp页面揣出现Invalid action class configuration that references an unknown class解决方案
  7. Java自定义Annotation,通过反射解析Annotation
  8. OC基础 可变字典与不可变字典的使用
  9. &lt;%@ include file=” ”%&gt; ——最简洁易懂的解释
  10. (转)Spring Bean Scope 有状态的Bean 无状态的Bean
  11. 求第n个丑数
  12. 第一章.java&amp;golang的区别之:闭包
  13. MySQL优化面试
  14. 初学python笔记----字符串
  15. spark2.0源码学习
  16. Cookie知识点总结
  17. ASP.NET提供三种主要形式的缓存
  18. Web 前沿&mdash;&mdash;HTML5 Form Data 对象的使用
  19. 解决hibernate向mysql插入中文乱码问题(转)
  20. 微信小程序——button, swiper等默认样式更改

热门文章

  1. HotSpot源码分析之C++对象的内存布局
  2. Android Support v4\v7\v13和AndroidX理解【转载】
  3. Git 分支相关
  4. C#设计模式-原型模式(Prototype Pattern)
  5. linux系统中 SElinux安全子系统
  6. 卷积神经网络图像纹理合成 Texture Synthesis Using Convolutional Neural Networks
  7. git 强制更新本地和强制提交覆盖
  8. Ramnit蠕虫病毒分析和查杀
  9. guitar pro系列教程(二十五):Guitar Pro教程之组织小节
  10. jQuery 第十章 工具方法-高级方法 $.ajax() $.Callbacks() .....