[Toc]

1. 创建

  • 复制一个已创建的仓库:git clone ssh://user@domain.com/repo.git

  • 创建一个新的本地仓库:git init

2. 本地修改

  • 显示工作路径下已修改的文件:git status

  • 显示与上次提交版本文件的不同:git diff

  • 把当前所有修改添加到下次提交中:git add

  • 把对某个文件的修改添加到下次提交中:git add -p <file>

  • 提交本地的所有修改(包括不在缓存区的):git commit -a

  • 提交之前已标记的修改:git commit

  • 附加消息提交:git commit -m 'message here

  • 修改上次提交(不要修改已发布的提交):git commit --amend

3. 提交历史

  • 从最新提交开始,显示所有的提交记录(显示hash, 作者信息,提交的标题和时间):git log

  • 显示所有提交(仅显示提交的hash和message):git log --online

  • 显示某个用户的所有提交:git log --author='username'

  • 显示某个文件的搜友修改git log -p <file>

  • 谁,在什么时间,修改了文件的什么内容:git blame <file>

4. 分支与标签

  • 列出所有的分支:git branch

  • 切换分支:git checkout <branch>

  • 基于当前分支创建新分支:git branch <new-branch>

  • 基于远程分支创建新的可追溯的分支:git branch --track <new-branch> <remote-branch>

  • 删除本地分支:git branch -d <branch>

  • 给当前版本打标签git tag <tag-name>

5. 更新与发布

  • 列出对当前远程端的操作:git remote -v

  • 显示远程端的信息:git remote show <remote>

  • 添加新的远程端:git remote add <remote> <url>

  • 下载远程端版本,但不合并到HEAD中:git fetch <remote>

  • 下载远程端版本,并自动与HEAD版本合并:git remote pull <remote> <url>

  • 将远程端版本合并到本地版本中:git pull origin master

  • 将本地版本发布到远程端:git push remote <remote> <branch>

  • 删除远程端分支:$ git push <remote> :<branch> (since Git v1.5.0)/git push <remote> --delete <branch> (since Git v1.7.0)

  • 发布标签git push --tags

6. 合并与重置

  • 将分支合并到当前HEAD中:git merge <branch>

  • 将当前HEAD版本重置到分支中(不要重置已发布的提交):git rebase <branch>

  • 退出重置:git rebase --abort

  • 解决冲突后继续重置:git rebase --continue

  • 使用配置好的merge tool 解决冲突:git mergetool

  • 在编辑器中手动解决冲突后,标记文件为已解决冲突:git add <resolved-file>/git rm <resolve-file>

7. 撤销

  • 放弃工作目录下的所有修改:git reset --hard HEAD

  • 移除缓存区的所有文件(i.e. 撤销上次git add):git reset HEAD

  • 放弃某个文件的所有本地修改:git checkout HEAD <file>

  • 重置一个提交(通过创建一个截然不同的新提交)git revert <commit>

  • 将HEAD重置到上一次提交的版本,并放弃之后的所有修改:git reset --hard <commit>

  • 将HEAD重置到上一次提交的版本,并将之后的修改标记为未添加到缓存区的修改:git reset <commit>

  • 将HEAD重置到上一次提交的版本,并保留未提交的本地修改:git reset --keep <commit>

8. 廖雪峰学习(按顺序记录)

  • 配置git全局的name和e-mail:
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
  • 初始化一个仓库:git init

  • 添加文件到git仓库

git add <file>//添加文件到缓存区,可反复多次使用,添加多个文件
git commit//提交缓存区的修改
  • 查看工作区的状态:git status

  • 查看文件修改内容:git diff <file>

  • 在版本历史间穿梭:git reset --hard <commit_id>/git reset --hard HEAD^/git reset --hard HEAD~100

  • 查看提交历史:git log

  • 查看命令历史:git relog

  • 当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时:git checkout -- <file>

  • 当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步

git reset HEAD <file>
git checkout -- <file>
  • 已经提交了不合适的修改到版本库时,想要撤销本次提交,使用版本回退:git reset ...

  • 删除一个文件:git rm <file>>>>(提交删除)git commit -m 'remove file'/(恢复)git checkout -- <file>

  • 关联一个远程库:git remote add origin git@server-name:path/repo-name.git

  • 关联远程仓库后第一次推送master分支所有内容:git push -u origin master

  • 每次本地提交后,使用该命令推送最新修改:git push origin master

  • 使用远程库克隆一个本地库:git clone git@server-name:path/repo-name.git

  • 查看分支:git branch

  • 创建分支:git branch <name>

  • 切换分支:git checkout <name>

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

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

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

  • 查看分支合并图:git log --graph

  • 普通模式合并分支,合并后的历史有分支,能看出来曾经做过合并git merge --no-ff -m 'merge message' <name>

  • 默认合并模式是fast forward删除分支后,会丢掉分支信息

  • 存储当前工作现场:git stash

  • 恢复存储的工作现场(stash内容删除):git stash pop

  • 查看存储的工作现场:git stash list

  • 多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stashgit stash apply stash@{0}(apply指令的stash内容不删除)

  • 丢弃一个没有被合并过的分支: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>

  • 在当前commit(HEAD)新建一个标签:git tag <name>

  • 指定一个commitId新建一个标签:git tag v0.9 6224937

  • 指定标签信息:git tag -a <tagname> -m 'tagmessage'

  • 使用pgp签名标签:git tag -s <tagname> -m 'tagmessage'

  • 查看所有标签:git tag

  • 推送一个本地标签:git push origin <tagname>

  • 推送全部为推送的本地标签:git push origin --tags

  • 删除一个本地标签:git tag -d <tagname>

  • 删除一个远程标签:git push origin :refs/tags/<tagname>

  • 忽略某些文件,需要编写.gitignore

//我的项目中.gitignore文件中
.DS_Store
node_modules/
dist/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
  • 配置git命令别名
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch

转载自:https://www.jianshu.com/p/13b531979b74

Git常用指令整理(Git Cheat Sheet)的更多相关文章

  1. git常用指令整理

    git常用指令一览表 GIT指令 说明 git add . 将全部文件的内容加到Git索引以便执行commit. 这个指令不会检查文件夹中是否有文件被删除. 要注意的是,只有执行" git ...

  2. iOS开发——源代码管理——git(分布式版本控制和集中式版本控制对比,git和SVN对比,git常用指令,搭建GitHub远程仓库,搭建oschina远程仓库 )

    一.git简介 什么是git? git是一款开源的分布式版本控制工具 在世界上所有的分布式版本控制工具中,git是最快.最简单.最流行的   git的起源 作者是Linux之父:Linus Bened ...

  3. (小组)Git 常用命令整理

    Git 常用命令整理 取得Git仓库 初始化一个版本仓库 git init Clone远程版本库 git clone git@xbc.me:wordpress.git 添加远程版本库origin,语法 ...

  4. Windows平台Atom编辑器的常用快捷键小抄Cheat Sheet

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:Windows平台Atom编辑器的常用快捷键小抄Cheat Sheet.

  5. GIT如何使用:大杀器!所有常用指令整理

    1 pwd 显示当前目录2 mkdir 创建目录 cd 进入文件3 git init 变成Git可以管理的仓库(千万不要修改目录下的.git隐藏文件夹)4 ls -ah 可以把.git文件显示出来5 ...

  6. 实践中的Git常用指令分析

    从工作开始,一直都在使用为知笔记(作为程序员需要知道的内容很多---不需要很深入理解,一段时不使用的东西可能就会忘记).但本周一同步不同PC端时,了解到为知会在2017/1/1开始收费! 既然收费了, ...

  7. 【常用指令】git+服务器+数据库

    git日程操作 服务器常用操作 ①同步master git pull origin master ②创建分支 git checkout -b 分支名 ③常规操作 git diff git add 文件 ...

  8. git常用指令

    <a>github的提交方式      git status     (1)git add .--------------------存储到本地       git add -u      ...

  9. xcode svn commit is not under version control 和 git常用指令

    使用Xcode提交一个第三方库时,由于包含资源文件,总是提交不了,提示报错:XXX commit is not under version control (1) 网上查了下,得知 xcode对于sv ...

随机推荐

  1. 【Python】2.11学习笔记 注释,print,input,数据类型,标识符

    前面学了好多内存什么的知识,没什么用(我有眼不识泰山233 吐槽一句,这课简直就是讲给完全的编程小白听得 就从语言开始写吧(其实好多已经看过了,再来一遍 话说我已经忘了\(Markdown\)怎么写了 ...

  2. 网页外链用了 target="_blank",结果悲剧了

    今天给大家分享一个 Web 知识点.如果你有过一段时间的 Web 开发经验,可能已经知道了.不过对于刚接触的新手来说,还是有必要了解一下的. 我们知道,网页里的a标签默认在当前窗口跳转链接地址,如果需 ...

  3. 【Weiss】【第03章】链表例程的一些修改

    主要是,感觉原来的链表例程通过Node的分配形成了链表,但是没有自动消除Node的办法比较危险,一旦在clear()之前把链表赋了其它值就内存泄漏了. 所以改了析构函数,自动清理分配出来的内存.既然改 ...

  4. Redis入门学习(学习过程记录)

    Redis(入门笔记) 学习一个大的技术点,然后顺带着就把这个技术点的面试题给学习了. 学习完一个技术后,如果面试题还不能够解答的话,只能说明学的不精,需要查漏补缺. 下一个学习的方向:Redis-非 ...

  5. SQL的分类使用(增删改查)

    1.SQL的分类使用(*代表重点的程度)    DDL ** (Data Definition Language)数据库定义语言        用来定义数据库对象: 库 表 列 等    DCL (D ...

  6. 零售CRM系统开发的核心功能

    在零售行业中,客户关系管理系统是一个包含销售,市场营销和客户服务流程的中央枢纽.它为企业所有者提供了一种可以结合所有与销售有关的问题并管理销售流程的有效工具.零售CRM可以留住客户,提供个性化的一流客 ...

  7. 升级Kubernetes 1.18前,你不得不知的9件事

    本文来自Rancher Labs 昨天Kubernetes最新版本v1.18已经发布,其包含了38项功能增强,其中15项为稳定版功能.11项beta版功能以及12项alpha版功能.在本文中,我们将探 ...

  8. 学习vue前的准备工作

    起步 1.扎实的HTML/CSS/Javascript基本功,这是前置条件. 2.不要用任何的构建项目工具,只用最简单的<script>,把教程里的例子模仿一遍,理解用法.不推荐上来就直接 ...

  9. input标签的accept属性、JQuery绑定keyDown事件

    一. input标签的accept属性 当我们上传文件或者注册上传头像时,我们可以一般都是使用: <input type="file" id="my_file&qu ...

  10. React Hook上车

    React Hook 是 v16.8 的新功能,自诞生以来,受到广泛的好评,在 React 版本更新中具有里程碑的意义.现在都2020年了,再不上车 React Hook 就真的 out 了... H ...