前言:Git是什么

Git是一个开源代码库和分布式版本控制系统。

它不需要服务器端软件,就可以运作版本控制。可以通过命令行或GUI工具进行操作。

参加实习工作后才发现公司是使用Git进行项目管理的,这与在校内使用的SVN还是有比较大差别。而且自己在校内过于依赖GUI界面进行项目管理,参加工作后才发现命令行的强大。本文是个人在Windows平台下学习如何使用Git(命令行)后整理的,不是标准的Git教程。欢迎Git初学者浏览学习交流。文中可能有错误,恳请各位路过的大牛指正。

[注:本文斜体字为示例名称]

常规初始化操作

建立名为 folderName 的文件夹

$mkdir folderName

初始化git仓库,其实是增加了.git隐藏目录,把本地目录变成Git可以管理的仓库

$git init

复制远程目录 abc

$https://github.com/abc

查看状态

$git status

三种状态

git管理目录下的文件存在三种状态

  1. Change(Unstaged):你改动了一个,没有调用任何git命令前,就是这种状态。
  2. Staged暂存区:调用git add或者git commit -a之后,进入Staged状态,表示申明要变动了。
  3. Committed:生成新的版本commit号,将改动提交到HEAD,但是还没同步到远程仓库。

在 Git 中,HEAD是一个指向你正在工作中的本地分支的指针(将 HEAD 想象为当前分支的别名。)

分支

创建仓库的时候,会有一个叫“master” 的默认分支。

你可以创建并命名自己的分支,这样在自己的分支上改动就不会影响到master和其它分支。

在自己的分支上的修改确认无误后,可以随时合并到master或其它分支。

通过让不同的开发者拥有不同分支,使得开发可以建立在同样的已有代码上却互不影响。

不带任何参数,查看当前目录有多少本地分支,以及当前HEAD指向哪个分支

$git branch

此命令新建一个tmpBranch本地分支(仅仅是建立了一个新的分支,但不会自动切换到这个分支中去)

$git branch tmpBranch

切换到本地tmpBranch分支

$git checkout tmpBranch

新建并切换到本地tmpBranch分支

$git checkout -b tmpBranch

合并分支(将tmpBranch分支与当前所在分支合并)

$git merge tmpBranch

删除tmpBranch本地分支,如果该本地分支未曾合并,这会提示出错

$git branch -d tmpBranch

强制删除tmpBranch本地分支

$git branch -D tmpBranch

oldBranch本地分支重命名为newBranch

$git branch -m oldBranch newBranch

add(添加)操作

执行add命令,可令文件从Change(Unstaged)状态变为Staged状态(将改动添加到缓存区)

octocat.txt文件从change->staged状态

$git add octocat.txt

添加当前(aaa)目录下所有的更新到缓存区

$git add /home/root/aaa/*

取消已add到暂存区的文件gitTest.txt(与add执行相反的操作)

$git reset HEAD gitTest.txt

若编辑修改已暂存(已add到暂存区)的文件,后运行git status会出现暂存前后的两个版本(Change和Staged)。

若此时Commit,则只会同步已暂存(Staged)的那个版本,而不会同步暂存后修改的部分。

若要同步暂存后修改的部分,应重新add该文件。

add添加到暂存区的文件,git才会监控它的变化。在Unstaged状态的文件变化并不会在命令行中体现出来。

查看差异

查看文件被修改之后还没有暂存起来的变化内容,显示的是与上次暂存文件的差异

$git diff

显示当前目录和另一个叫test分支的差别

$git diff test

查看已经暂存起来的文件和上次提交时的快照之间的差异

$git diff --cached

Commit(提交)操作

Commit操作可将改动提交到本地HEAD.

提交到仓库,包括一个message说明

$git commit -m "Add cute octocat story"

加上-a参数,把所有已经跟踪过的文件一次性暂存起来一起提交,这样不用先git add再git commit,跳过git add步骤

$git commit -a -m 'message'

以下命令将使用当前的暂存区域快照提交。如果刚才提交完没有作任何改动,直接运行此命令的话,相当于重新编辑提交说明

$git commit --amend

以下三条命令最终只是产生一个提交,第二个提交命令修正了第一个的提交内容,补上文件forgotten_file

如果提交时忘了暂存某些修改,可以先补上暂存操作,然后再运行 --amend 提交

$git commit -m 'initial commit'
$git add forgotten_file
$git commit --amend

Push(推送)与Pull(更新)操作

Push命令会把Commit过的改动提交到远端仓库。

把本地master分支推送到远程origin仓库上

$git push origin master

把本地分支b1推送到远程origin仓库上,并命名为b2

$git push origin b1:b2

从其他的版本库(既可以是远程的也可以是本地的)将代码更新到本地(类似于SVN的Update)

$git pull

移除文件

若在工作目录中手工删除了某个已跟踪(位于暂存区)的文件,则需要运行移除命令记录此次移除文件的操作。

最后提交的时候,该文件便不再纳入版本管理。

记录删除gitest.txt文件的操作

$git rm gitest.txt

若想把文件从 Git 仓库中删除(亦即从暂存区域移除),且仅是从跟踪清单中删除,

但仍然希望文件本身保留在当前工作目录中,加--cached参数选项即可

$git rm --cached readme.txt

标签操作

Git 使用的标签有两种类型:轻量级的(lightweight)和含附注的(annotated)。

新建一个含附注(-a)的标签

$git tag -a v1.4 -m 'my version 1.4'

新建一个轻量级标签

$git tag v1.5

查看相应标签的版本信息

$git show v1.1

其它常用操作

重命名操作,将文件名为file_from的文件重命名为file_to

$git mv file_from file_to

查看日志(使用-p选项可以展开显示每次提交的内容差异,用-2则仅显示最近的两次更新)

$git log

重置,撤销某次提交(HEAD指向的版本就是当前版本)

$git reset octofamily/octodog.txt

还原修改,把filename文件在工作区的修改全部撤销,

若该文件在修改后还没有被添加到暂存区,则改回与版本库一样的状态,

反之,则改回添加到暂存区后的状态

$git checkout -- octocat.txt

为命令配置别名,此例为查看最后一次提交信息,这样,直接输入git last就等同于输入git log -1 HEAD

$git config --global alias.last 'log -1 HEAD'

Git常用命令速记与入门的更多相关文章

  1. Git常用命令和Git团队使用规范指南

    转自:https://wsgzao.github.io/post/git/ 前言 在2005年的某一天,Linux之父Linus Torvalds 发布了他的又一个里程碑作品——Git.它的出现改变了 ...

  2. git常用命令(持续更新中)

    git常用命令(持续更新中) 本地仓库操作git int                                 初始化本地仓库git add .                       ...

  3. Git 常用命令详解

    Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ...

  4. Git 常用命令大全

    Git常用操作命令: 1) 远程仓库相关命令 检出仓库:$ git clone git://github.com/jquery/jquery.git 查看远程仓库:$ git remote -v 添加 ...

  5. Git常用命令总结

    Git常用命令总结 git init      在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个repo,并在当前文件夹下创建一个.git文件夹.   git clone ...

  6. GIT常用命令备忘

    Git配置 git config --global user.name "storm" git config --global user.email "stormzhan ...

  7. Git 常用命令2

    Git 常用命令 Git 是一个很强大的分布式版本控制系统.它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势. Git常用操作命令: 1) 远程仓库相关命令 检出仓库:$ gi ...

  8. git常用命令-基本操作

    git常用命令-基本操作 1)      新增文件 新增了Test_1.java git add Test_1.java git commit –m “新增了Test_1.java” git push ...

  9. 转收藏:Git常用命令速查表

    一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r ...

随机推荐

  1. 字符串匹配--扩展KMP模板

    对于一个字符串 s 以及子串 t ,扩展KMP可以用来求 t 与 s 的每个子串的最长公共前缀 ext [ i ],当然,如果有某个 ext 值等于 t 串的长度 lent ,那么就说明从其对应的 i ...

  2. 2017年最新cocoapods安装教程(解决淘宝镜像源无效以及其他源下载慢问题)

    首先,先来说一下一般的方法吧,就是把之前的淘宝源替换成一个可用的的源: 使用终端查看当前的源 gem sources -l gem sources -r https://rubygems.org/ # ...

  3. Java Web HelloWorld!

    距离上次做Java Web开发已经两年多了,我几乎忘得一干二净……都忘记咋搭建环境了……,然后Eclipse官网莫名其妙的挂掉.幸好电脑里还有份两年前的开发环境备份…… 重拾Java Web开发啊,说 ...

  4. Spring目前用到的知识点

    2017/7/28 目前的工作,spring用到到的地方 在当前类有下列的代码 private BookDao bookDao bookDao.调用方法 点开这个方法,声明指向的是BookDao这个接 ...

  5. linux系统的启动过程及系统初始化

    (其中/etc/inittab是一个很重要的文件,值得细究http://www.2cto.com/os/201108/98426.html) 其开头的446字节内容特指为"主引导记录&quo ...

  6. RAC 修改 spfile 参数

    我们知道数据库的参数文件有spfile 和pfile. RAC 的参数文件比较特殊. 因为默认情况下,RAC的spfile 是放在共享设备上(RAW设备或者ASM磁盘组).而在各节点的pfile文件里 ...

  7. mac下hbase安装

    出处:https://www.jianshu.com/p/510e1d599123 安装到的路径:/usr/local/Cellar/hbase/1.2.6 linux操作: linux命令 作用 . ...

  8. git add -A、git add -u、git add .区别

    git add各命令及缩写 git add各命令 缩写 git add --all git add -A git add --update git add -u git add . Git Versi ...

  9. 大快DKH大数据智能分析平台监控参数说明

    2018年国内大数据公司50强榜单排名已经公布了出来,大快以黑马之姿闯入50强,并摘得多项桂冠.Hanlp自然语言处理技术也荣膺了“2018中国数据星技术”奖.对这份榜单感兴趣的可以找一下看看.本篇承 ...

  10. R(7): data.table

    这个包让你可以更快地完成数据集的数据处理工作.放弃选取行或列子集的传统方法,用这个包进行数据处理.用最少的代码,你可以做最多的事.相比使用data.frame,data.table可以帮助你减少运算时 ...