1,初始化仓库:

  git init      --此命令会在当前目录下新建一个Git仓库。新建了一个 .git的隐藏目录,仓库的所有数据都放在这个目录里。目前还是空的。

2,跟踪,暂存文件:

  git add      --执行git add 命令将源文件的修改加入git仓库的暂存区,待执行git commit时,正式将修改存入仓库。或新建一个文件后 git add 文件名  跟踪这个文件

3,提交:

  git commit      --git commit 用于将暂存的修改提交入仓库      git commit -a

  git commit  --amend      --覆盖最后一次提交,将这次提交的内容和上次的提交合并,并使用新的commit message。这个命令似乎于这种情况:提交了一条commit以后,发现代码修改得不完整,另外再提交一条会显得很乱,使用这条命令可以将之前的提交取消,替换为新的提交。

4,查看日志:

  git log      --查看修改历史

  执行结果如下:

/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;}

  commit 85b6d9de45e4efe8220508f845a2a3d11ca609b2
  Author: YuanSuyi<tech31@hzdusun.com>
  Date:   Mon May 22 14:51:13 2017 +0800
  add include
  commit 5226503c985dd593ef9edb68e77981321ce7c265
  Author: YuanSuyi<tech31@hzdusun.com>
  Date:   Mon May 22 14:50:18 2017 +0800
  inital commit.
   

  其中commit后面的64个字符16进制的字符串,称为commit hash, 是这条的commit的唯一标识,全球唯一。很多git命令的后面可以带个hash。比如git show <hash值> 可以显示出这条commit修改的内容。

  使用git show 命令查看某条提交的修改内容

5,分支创建分支:             $ git branch mybranch

  切换分支:                           $ git checkout mybranch
  创建并切换分支:                        $ git checkout -b mybranch
  更新master主线上的东西到该分支上:              $git rebase master
  切换到master分支:                      $git checkout master
  更新mybranch分支上的东西到master上:            $git rebase mybranch
  更新远程库到本地:                       $ git fetch origin
  推送分支:                           $ git push origin master
  取远程分支合并到本地:                     $ git merge origin/master
  取远程分支并分化一个新分支:                  $ git checkout -b mybranch origin/master
  删除远程分支:                  $ git push origin :master
  删除本地分支:                  $ git branch -D mybranch

6,fetch,pull,push

  git fetch

  --所有在远程仓库里的分支,都会出现在origin/这个命名空间之下。注意:origin/ 下的分支,实际上也是存在本地的.git目录中的,就算断网也是可以查看和使用的。

  --抓取远程服务器上的分支的更新数据,并同步到origin/ 下,但不会修改本地分支的内容。比如服务器上的master分支在上一次clone之后发生了变化,git fetch命令可以用于抓取这部分变化的内容,同步在origin/master分支上。

  git pull

  --这个命令是git fetch 和git merge 的结合。先git fetch,然后将本地分支所关联的远程分支做merge。假设当前分支是master, 相当于执行:  git merge origin/master

  git push

  --git push 命令将本地分支的修改推送到远程服务器上。如果远程服务器上没有同名的分支,则会在远程服务器上创建新的分支,并将本地分支与远程分支做关联。

  eg:

  git push -u origin local_branch_name              --推送分支到远程服务器

  git push -u origin :remote_branch_name            --删除在远程服务器的分支

7,重置:
  git reset --hard      --撤消一切本地的修改,将本地目录恢复为最后一次提交时的状态。包括被修改的文件,删除的文件都会被恢复原样。我们称之为hard reset。
  git reset <hash值>     --以上命令是soft reset,将git仓库的状态复原为commit hash指定的状态,但不对本地目录里的文件做任何操作。这个命令在某些情况下很有用:比如在代码调试阶段,连续提交了多条commit,假设修改之前的commit编号为0,后续有1..N条commit,等功能调试OK以后,发现这1..N条的很多修改都是反复的,一会儿加了点代码,一会儿又把增加的代码删除了,实际最终为了这一个功能所做的修改很有限。为了使commit log 的简洁,可以git reset commit_0_hash, 然后重新commit一条记录。
 
 8,查看两个分支有何不同
  git log branch_1...branch2
 

Normal
0

7.8 磅
0
2

false
false
false

EN-US
ZH-CN
X-NONE

/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;}

git<git常用命令>的更多相关文章

  1. git<git rebase 修改以前提交过的内容>

      git rebase 使用总结: 使用git rebase 修改以前已经提交的内容 比如要修改之前的commit的 hashcode为:187f869c9d54c9297d6b0b1b4ff47d ...

  2. git rebase修改历史提交内容

    目录 简述 解决过程 简述 git提交历史中有一次提交的内容是有问题,因为每隔一段时间就要发一次版本,所以必须修改这次提交的内容,以便其不影响已经发布的版本. 大概是这样子的 A --- B ---- ...

  3. git 修改上次提交信息 与 撤销此操作.

    git commit --amend 修改刚才提交的commit信息 撤销 git commit --amend 思路是使用 git reflog 查看在哪里ammend的.找到HEAD{N}, N是 ...

  4. 使用git命令修改commit提交信息

    很多时候我们在提交代码时可能会把commit提交信息写错了,这个时候我们就可以用到下面的git命令来修改commit提交信息 git commit --amend 输入"i"之后进 ...

  5. 怎么修改git提交过的内容

    git修改历史提交   Git使用amend选项提供了最后一次commit的反悔.但是对于历史提交呢,就必须使用rebase了. git rebase -i HEAD~3 表示要修改当前版本的倒数第三 ...

  6. git 修改已提交的注释

    在git中,其commit提供了一个--amend参数,可以修改最后一次提交的信息 修改最后一次提交注释 git commit --amend 然后在出来的编辑界面,直接编辑注释的信息,保存退出 gi ...

  7. git 修改历史提交信息

    当你不小心,写错了提交的注视/信息,该如何处理呢.理论上,SCM是不应该修改历史的信息的,提交的注释也是.   不过在git中,其commit提供了一个--amend参数,可以修改最后一次提交的信息. ...

  8. git 学习笔记 —— 获取远端分支并修改后提交至远端仓库

    笔者最近进行开发过程中,所有参与者的代码需要通过 git 上传到远端仓库中,不同的模块对应不同的 git 分支,不同模块的数据需要从远端仓库中获取.这里记录下笔者从远端仓库中获取分支数据,进行修改,最 ...

  9. Git 修改已提交的commit注释

    两种情况: 1.已经将代码push到远程仓库 2.还没将代码push到远程仓库,还在本地的仓库中 这两种情况下的修改大体相同,只是第一种情况最后会多一步 下面来说怎么修改 先搞清楚你要修改哪次的提交注 ...

  10. Git 修改历史提交信息 commit message

    修改最近一条提交的消息 git commit --amend 进入vim模式 按字母 o 或者 insert键 开始修改内容 按 esc 推出编辑,最常用的是输入":q"直接退出, ...

随机推荐

  1. activiti engine.schema.update DB_SCHEMA_UPDATE_FALSE

    engine.properties # engine propertiesengine.schema.update=trueengine.activate.jobexecutor=falseengin ...

  2. Java日志输出问题

    以前有一个同事,说自己的Java控制台程序,输出的信息,打印信息以及错误信息,在windows的command line刷屏,想复制下来,想要自输出到日志文件里. 自己写文件太麻烦,他从网上只找到用重 ...

  3. const修饰符限定的常量

    类型前加const修饰符限定变量为只读,称为常量,定义时必须初始化,且初始化后编译器不允许再修改常量的值. 一.常量的定义 const在类型前面 const int value: //value是co ...

  4. 给定一个 hashMap 最终输出最大值的键

    /** * * 类 描 述:机试题: 给定一个 hashMap 最终输出最大值的键 * 作 者: 赵 鹏 * 时 间:2017年7月4日 下午6:51:06 */ public class Test ...

  5. 微信内置浏览器在使用video标签时(安卓)默认全屏的原因及解决办法

    根据X5论坛得到的答案是:设计如此. 腾讯真是越来越嚣张了,一家独大后用户体验都不注重了(不给程序员留活路). 听说有个申请加入vdeo白名单的,域名验证后就可以解决默认全屏(反正我是没见过申请入口, ...

  6. MySQL在Read Uncommitted级别下写操作加X锁

    很多文章认为MySQL在读未提交(Read Uncommitted)的隔离级别下,写操作是不加锁的,然而实际上并不是,在RU级别下,写操作加有X锁. 实践出真知 以前,我也认为RU隔离级别下,写操作不 ...

  7. JavaScript & Dom 之 基本语法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. 计算机cpu、寄存器、内存区别

    1.寄存器是中央处理器内的组成部份.它跟CPU有关.寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令.数据和位址.在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC). ...

  9. python系列-2 正则表达式资料

  10. 【Linux】Centos6.8下一键安装Lamp环境

    [下载地址] 以下三种都是快捷安装环境的工具,都提供相应的脚本,原理都相同,一个会了其他的也就都会了,我用的比较多的会是lnmp和oneinstack,最近在用的都是oneinstack,挺好用的. ...