https://www.cnblogs.com/jager/p/6684637.html

四、git工作原理

这边文章介绍的不错 Git from the Bottom Up

六、git常用命令

  •   workspace: 本地工作目录
  •   index:缓存区域,临时保存本地改动
  •   local repository: 本地仓库
  •   remote repository:远程仓库

 

  1. == git配置 ==
  2. git config --list //查看当前git的配置,Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)
  3.  
  4. == 查看信息 ==
  5. git log //查看提交记录
  6. git status //查看修改状态
  7. git diff //查看详细修改内容
  8. git show //显示某次提交的内容
  9. git branch //列出所有本地分支
  10. git tag //列出所有tag
  11. git reflog //显示当前分支的最近几次提交
  12.  
  13. == 新建代码库 ==
  14. git init //在当前目录新建一个Git代码库
  15. git init [project-name] //新建一个目录,将其初始化为Git代码库
  16. git clone [url] //下载一个项目和它的整个代码历史
  17.  
  18. == 增加/删除 ==
  19. git add [file1] [file2] ... //添加指定文件到暂存区
  20. git add [dir] //添加指定目录到暂存区,包括子目录
  21. git add . //添加当前目录的所有文件到暂存区
  22. git rm [file1] [file2] ... //删除工作区文件,并且将这次删除放入暂存区
  23. git mv [file-original] [file-renamed] //改名文件,并且将这个改名放入暂存区
  24.  
  25. == 代码提交 ==
  26. git commit -m [message] //代码提交到本地仓库
  27. git commit [file1] [file2] ... -m [message] //提交指定文件到本地仓库
  28. git commit -a //提交工作区自上次commit之后的变化,直接到仓库区
  29. git commit -v //提交时显示所有diff信息
  30. git commit --amend -m [message] //使用一次新的commit,替代上一次提交,如果代码没有任何新变化,则用来改写上一次commit的提交信息
  31.  
  32. == 分支管理 ==
  33. git branch -r //列出所有远程分支
  34. git branch -a //列出所有本地分支和远程分支
  35. git branch [branch-name] //新建一个分支,但依然停留在当前分支
  36. git checkout -b [branch] //新建一个分支,并切换到该分支
  37. git checkout [branch-name] //切换到指定分支,并更新工作区
  38. git checkout - //切换到上一个分支
  39. git merge [branch] //合并指定分支到当前分支(如master)
  40. git branch -d [branch-name] //删除分支
  41. git push origin --delete [branch-name] //删除远程分支
  42. git branch -dr [remote/branch] //删除远程分支
  43.  
  44. == 远程同步 ==
  45. git fetch [remote] //下载远程仓库的所有变动,到index
  46. git pull //更新本地仓库至最新改动,到workspace
  47. git remote -v //显示所有远程仓库
  48. git remote show [remote] //显示某个远程仓库的信息
  49. git remote add [shortname] [url] //增加一个新的远程仓库,并命名
  50. git pull [remote] [branch] //取回远程仓库的变化,并与本地分支合并
  51. git push origin master //推送至master分支
  52. git push [remote] [branch] //上传本地指定分支到远程仓库
  53. git push [remote] --force //强行推送当前分支到远程仓库,即使有冲突
  54. git push [remote] --all //推送所有分支到远程仓库
  55.  
  56. == 撤销 ==
  57. git reset [file] //重置暂存区的指定文件,与上一次commit保持一致,但工作区不变
  58. git reset --hard //重置暂存区与工作区,与上一次commit保持一致
  59. git checkout //从index恢复到workspace
  60. git checkout . //恢复暂存区的所有文件到工作区
  61. git checkout -- files //文件从index恢复到workspace
  62. git checkout HEAD -- files //文件从local repository复制到workspace
  63.  
  64. == 冲突解决 ==
  65. git diff //对比workspace与index
  66. git diff HEAD //对于workspace与最后一次commit
  67. git diff <source_branch> <target_branch> //对比差异
  68. git add <filename> //修改完冲突,需要add以标记合并成功

七、git使用流程规范【重要】

下面是ThoughtBot 的Git使用规范流程,推荐使用:

Create a local feature branch based off master.

  1. git checkout master
  2. git pull
  3. git checkout -b <branch-name>

Rebase frequently to incorporate upstream changes.

  1. git fetch origin
  2. git rebase origin/master

Resolve conflicts. When feature is complete and tests pass, stage the changes.

  1. git add --all

When you've staged the changes, commit them.

  1. git status
  2. git commit --verbose

Write a good commit message. Example format:

  1. Present-tense summary under 50 characters
  2. * More information about commit (under 72 characters).
  3. * More information about commit (under 72 characters).
  4. http://project.management-system.com/ticket/123

If you've created more than one commit, use git rebase interactively to squash them into cohesive commits with good messages:

  1. git rebase -i origin/master

Share your branch.

  1. git push origin <branch-name>

Submit a GitHub pull request.

Ask for a code review in the project's chat room.

总结大致如下:

  •   新建分支
  •   提交分支
  •   撰写commit信息
  •   与主干同步
  •   合并commit
  •   推送到远程仓库
  •   发出pull request,请求别人进行代码review

【Git123】Git的更多相关文章

  1. 【经验之谈】Git使用之TortoiseGit配置VS详解

    前言 上一篇<[经验之谈]Git使用之Windows环境下配置>: 安装 配置和使用 后记 关于vs中使用git网上的教程大家也可以找到,我当时配置的时候也是按照网上找的教程一步一步来的, ...

  2. 【转】Git如何Check Out出指定文件或者文件夹

    [转]Git如何Check Out出指定文件或者文件夹http://www.handaoliang.com/a/20140506/195406.html 在进行项目开发的时候,有时候会有这样的需求那就 ...

  3. 【转】Git超实用总结,再也不怕记忆力不好了

    [转]Git超实用总结,再也不怕记忆力不好了 欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯工蜂发表于云+社区专栏 Git 是什么? Git 是一个分布式的代码管理容器,本地和 ...

  4. (转)【经验之谈】Git使用之TortoiseGit配置VS详解

    原文地址:http://www.cnblogs.com/xishuai/p/3590705.html 前言 上一篇<[经验之谈]Git使用之Windows环境下配置>: 安装 配置和使用 ...

  5. 【译文】Git merge 和 Git rebase比较

    [译文]Git merge 和 Git rebase比较 原创: 胡江华 胡同学和朋友们的成长日记 2017-03-22 git rebase 这个命令经常被人认为是一种Git巫术,初学者应该避而远之 ...

  6. 【61】git项目实战的步骤总结

    1.新建分支的步骤 git pull git checkout -b 分支号(task的后面的代号) 2.提交代码到远程仓库的步骤 git add . git commit -m "分支号+ ...

  7. 【原创】Git删除暂存区或版本库中的文件

    0 基础     我们知道Git有三大区(工作区.暂存区.版本库)以及几个状态(untracked.unstaged.uncommited),下面只是简述下Git的大概工作流程,详细的可以参见本博客的 ...

  8. 【转】Git 安装和使用教程

    git 提交 全部文件 git add .  git add xx命令可以将xx文件添加到暂存区,如果有很多改动可以通过 git add -A .来一次添加所有改变的文件.注意 -A 选项后面还有一个 ...

  9. 【git2】git+码云+webStrom

    在[git1]中介绍了Git的安装.webstrom配置Git和GitHub.GitHub项目上传下载的方法. 这篇将一下在[git1]步骤(一)基础上webstorm配置码云 实现项目的上传下载. ...

随机推荐

  1. easyui修改提示窗

    1.将文本框type修改成 password 2.easyui中的js

  2. 解决 iframe 后退不是主页面后退(浏览器 history)问题

    前言:项目中的主页面里有 iframe,切换 iframe 的 src 地址之后,再点浏览器的回退之后,会导致 iframe 里面回退,而不是主页面回退. 问题 浏览器机制的原因,在 iframe 导 ...

  3. Vue之组件使用(一)

    这仅仅是个人为了防止忘记做的笔记而已,仅供参考,有不对的地方请纠正 组件这种东西用来封装多次使用的控件还是很有用处的,我还是挺喜欢这种模式,优化了前端的工作,写个组件也比较简单.下次有时间记录一下样式 ...

  4. 面向对象设计模式_享元模式(Flyweight Pattern)解读

    场景:程序需要不断创建大量相似的细粒度对象,会造成严重的内存负载.我们可以选择享元模式解决该问题. 享元抽象:Flyweight 描述享元的抽象结构.它包含内蕴和外蕴部分(别被术语迷惑,这是一种比较深 ...

  5. HDU3622(二分+2-SAT)

    Bomb Game Time Limit: 10000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  6. 排序算法(3)--Insert Sorting--插入排序[3]--Shell Sort--希尔排序

    1.基本思想 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序:随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止. 2.实现原理 对于n ...

  7. JTS基本概念和使用

    简介 JTS是加拿大的 Vivid Solutions公司做的一套开放源码的 Java API.它提供了一套空间数据操作的核心算法.为在兼容OGC标准的空间对象模型中进行基础的几何操作提供2D空间谓词 ...

  8. Java虚拟机(二)对象的创建与OOP-Klass模型

    前言 在前一篇文章中我们学习了Java虚拟机的结构原理与运行时数据区域,那么我们大概知道了Java虚拟机的内存的概况,那么内存中的数据是如何创建和访问的呢?这篇文章会给你答案. 1.对象的创建 对象的 ...

  9. 第一篇 Windows docker 概述

    本人行业属于智能制造,偏向工厂应用,客户端程序全部是.Net 的 WinForm:本系统的后台是.Net,多系统交互的有java的:因系统发布效率问题,想采用docker Windows 的生产力环境 ...

  10. 8.1、包,__init__.py,

    包: 为了组织好模块,将多个模块组合为一个包,所以包用于存放python模块 包通常是一个文件夹,当文件夹当作包使用时,文件夹需要包含__init__.py文件 __init__.py的内容可以为空, ...