文档已储存在 GitHub,这里不再更新校正,请原谅。

远程仓库相关命令

克隆远程仓库:git clone git://github.com/jquery/jquery.git
查看远程仓库:git remote -v
添加远程仓库:git remote add [name] [url]
删除远程仓库:git remote rm [name]
修改远程仓库:git remote set-url --push [remoteName] [newUrl]
拉取远程仓库:git pull [remoteName] [remoteBranchName]:[localBranchName]
推送远程仓库:git push [remoteName] [localBranchName]:[remoteBranchName]

分支命令(branch)

查看本地分支:git branch
查看远程分支:git branch -r
查看所有分支:git branch -a
创建本地分支:git branch [name]         // 注意新分支创建后不会自动切换为当前分支
切换分支:git checkout [branchName]
创建新分支并立即切换到新分支:git checkout -b [name]
合并分支:git merge [branchName]       // 将名称为[branchName]的分支合并到当前分支
将本地分支push到远程:git push [remoteName] [localBranchName]:[remoteBranchName]    // 如果远程分支不存在,则自动创建远程分支
删除本地分支:git branch -d [branchName]      // [-d]选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用 [-D] 选项
删除远程分支:
在Git v1.7.0 之后,可以使用这种语法删除远程分支:git push --delete origin branchName
否则,可以使用这种语法,推送一个空分支到远程分支,其实就相当于删除远程分支:git push origin :[remoteBranchName]

1、如果本地分支和远程分支存在对应关系,则可以直接在分支下使用 git pushgit pull 做相应操作。

2、如果本地分支和远程分支不存在对应关系,则可以如下设置对应关系。

如果是远程创建的分支,pull / fetch 远程信息到本地,分支间是存在对应关系的。

如果是本地新建分支提交到远程上,是不会存在对应关系的。

// 先提交本地创建的分支到远程
git push origin test:test// 再建立关联
语法糖:git branch --set-upstream-to [remoteName]/[remoteBranch] [localBranch]
示例:git branch --set-upstream-to origin/test test

3、查看远程仓库分支与本地仓库分支的对应关系(pull, push),如以 origin 仓库为例:

亦显示远程库 origin 里的资源

git remote show origin

4、本地的某个分支提交到远程仓库某个分支,以本地 test 分支为例,如下:

git push [remoteName] test:master  // 提交本地 test 分支作为远程的 master 分支
git push [remoteName] test:test    // 提交本地 test 分支作为远程的 test 分支

5、将代码提交到多个不同仓库的不同分支: https://www.v2ex.com/t/95460

git remote add github [url]
git remote add gitcafe [url]git push github master:master
git push gitcafe master:cafe-pages

回撤命令(reset)

针对将已提交到版本库或缓存区的文件恢复到之前的某个版本。

回撤命令模板:git reset [--param] [commit id]
回撤到指定版本:git reset --hard 9ca489438651f44cf65366e3bfab09527c8235ae 【日志上的commit id】
回撤到上1个版本:git reset --hard HEAD^
回撤到上2个版本:git reset --hard HEAD^^
回撤到上10个版本:git reset --hard HEAD~10
回撤到上0个版本:git reset --hard HEAD// 即本地仓库最新的版本
回撤到远程的上0个版本: git reset –-hard [remoteName]/[branchName]// 即远程仓库最新的版本,如:git reset –-hard origin/master回撤参数解释:
--mixed               reset HEAD and index    默认选项。版本库和缓存区都滚到指定的版本,但工作目录不受影响
--soft                reset only HEAD        仅仅回撤版本库,缓存区和工作目录都不会被改变
--hard                reset HEAD, index and working tree        所有文件都不会保留
--merge               reset HEAD, index and working tree        合并指定版本与现在暂存区与工作区的文件
--keep                reset HEAD but keep local changes

回撤命令(checkout)

针对将已修改的工作区文件,但还未提交到版本库或缓存区时,恢复到未修改的状态。

( 类似 WebStorm 编辑器里的 revert,这里的 revert 还可以回撤已经提交到缓存区的文件)

撤销未提交的某个修改:git checkout dev/filename.js
撤销所有未提交的修改:git checkout .

配置命令(config)

查看当前项目的配置信息:git config --list
设置当前项目作者名称:git config user.name [userName]
设置当前项目作者邮箱:git config user.email [email]
设置别名,简写操作:git config --global alias.[aliasName] [commandName]// 如:git config --global alias.st status, 这样,以前用 git status 查看文件状态,现在就可以用 git st。本地配置路径: [当前项目]/.git/config
全局配置路径: [用户]/.gitconfig
配置可以直接编辑 .gitconfig 文件,更方便,如下:[user]name = Barrioremail = barrior@qq.com[alias]st = statusco = checkoutbr = branchci = commit

差异对比命令(diff)

这个应该用工具看才更直观。

查看工作区与版本之间的差异:git diff [file]
查看缓存区与版本之间的差异:git diff --cached [file] 或 git diff --staged [file]// 如果没有file,则列出所有文件的差异

其他命令

查看当前状态:git status
提交某个文件(工作区)到缓存区:git add [path]// [path]可以是文件也可以是目录
提交所有文件到缓存区:git add .
提交缓存区文件到版本库:git commit -m 'message'
直接提交工作区文件到版本库:git commit -am 'message'        // [-a]代表add,注:这个命令会提交所有修改的文件,但不会提交新建的文件查看提交日志:git log
查看指定文件的提交历史:git log -p [file]将文件push到一个临时空间:git stash push
将文件从临时空间pop下来:git stash pop

文件忽略(.gitignore)

.gitignore 配置文件用于配置不需要加入版本管理的文件,可在 Git Bash 中使用shell命令 touch .gitignore 创建这个文件

1、配置语法:

  • 以井号 “#” 开头的行视为注释。

  • 以斜杠 “/” 开头表示目录。

  • 以星号 “*” 通配多个字符。

  • 以问号 “?” 通配单个字符。

  • 以方括号 “[]” 包含单个字符的匹配列表。

  • 以感叹号 “!” 表示不忽略先前模式排除的文件或目录,如果排除该文件的父目录,则无法重新包括该文件。

2、示例:

规则:test/*
说明:忽略 test 目录下的全部内容;注意,不管是根目录下的 /test/ 目录,还是某个子目录 /child/test/ 目录,都会被忽略规则:/test/*
说明:忽略根目录下的 /test/ 目录的全部内容规则:test
说明:忽略 test 文件和 test 目录规则:test/
说明:只忽略 test 目录,不忽略 test 文件规则:test!test/
说明:只忽略 test 文件,不忽略 test 目录规则:/test
说明:只忽略当前目录下的 test 文件和目录,子目录的 test 不在忽略范围内规则:*.[oa]
说明:忽略所有以 .o 或 .a 结束的文件规则:**/node_modules/
说明:忽略所有文件夹下命名为 node_modules 的文件夹,和直接写 node_modules/ 一样

3、示例:

规则:/*!/test/test/*!/test/inner.js说明:忽略全部内容,但是不忽略根目录下的 /test 目录和 /test/inner.js 文件

Git终端偏好设置

  1. 在 Git Bash 命令行终端,右键选择 Options, 里面有很多显示设置,如设置默认终端尺寸,透明度,字体大小等,可以让视觉更舒服。

  2. 设置完毕后,在 [用户] 文件夹下会生成一个 .minttyrc 文件,保存文件到云上,以后重装系统或其他电脑用,直接黏贴到机子 [用户] 文件夹下就可以用了。

参考:

Git 常用命令大全:http://blog.csdn.net/dengsilinming/article/details/8000622

Git 官网:https://git-scm.com/book/zh/v2

http://www.cnblogs.com/haiq/archive/2012/12/26/2833746.html

http://blog.csdn.net/benkaoya/article/details/7932370

其他资源

Git 常用命令集锦相关推荐

  1. Git 常用命令集锦 1

    1. 安装后的初始化: git config --global user.name "your name" git config --global user.email " ...

  2. 【转载】Git 常用命令大全

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

  3. Git 常用命令速查表(图文+表格)

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

  4. git常用命令,分支操作,子模块

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

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

    1. 前言 在2005年的某一天,Linux之父Linus Torvalds 发布了他的又一个里程碑作品--Git.它的出现改变了软件开发流程,大大地提高了开发流畅度,直到现在仍十分流行,完全没有衰退 ...

  6. Java程序员时刻铭记的Git常用命令

    今天动力节点Java学院为大家整理了Java架构师必备Git常用命令清单 工程下载.分支的增删查改 工程下载: clone 远程工程:git clone https://XXXX.git fetch ...

  7. Git常用命令备忘(一) 转载

    Git配置 git config --global user.name "robbin" git config --global user.email "fankai@g ...

  8. git常用命令_10、Git常用命令

    Git常用命令 Git作为我们最常用的版本控制工具,多了解并熟悉一些命令,将能节省很多时间 关于git,首先需要了解几个名词,如下: Workspace:工作区 Index / Stage:暂存区 R ...

  9. Git 常用命令速查表(图文+表格)【转】

    转自:http://www.jb51.net/article/55442.htm 一. Git 常用命令速查 git branch 查看本地所有分支 git status 查看当前状态  git co ...

最新文章

  1. Web服务cxf框架发布2
  2. OS中关于父子进程的执行顺序和多个子进程之间的执行顺序(整理)
  3. Linux驱动调试中的Debugfs的使用简介
  4. [一维粒子模拟 version3.6]renormalization
  5. RabbitMQ——安装
  6. package org.apache.hadoop.conf does not exist解决
  7. 带Prometheus的Spring Boot和测微表第4部分:基础项目
  8. 文件操作,读文件、写文件、获取文件长度、删除文件、判断文件格式等。
  9. 数据增强_NLP 数据增强方法 EDA
  10. 类型转换static_cast,dynamic_cast,const_cast,reinterpret_cast等
  11. linux 远程 mysql,linux下mysql远程访问
  12. 构造器2(Java)
  13. Slider网站欣赏
  14. leetcode347——前K个高频元素——java实现
  15. 费马小定理、欧拉定理总结
  16. 2020.7.18 T3Ocd(jz暑假训练day4)
  17. HCIP第十六天(VLAN IF接口,STP生成树协议,BPDU的配置)
  18. Unity3D-FingerGestures控制相机 Pinch Drag Click Swip等
  19. 如何应对CPU帧率瓶颈和卡顿?腾讯游戏学院专家带你剖析
  20. Java基础--I/O流知识总结

热门文章

  1. birt报表表格边框_手把手教你五步制作出一张领导驾驶舱报表
  2. android怎么监听多点触摸_什么是多点触控技术,有哪些用途
  3. 计算机专业期末考试是编程序,计算机专业技能期末考试题
  4. android 线性布局位置,android – 如何在线性布局中更改视图的位置.
  5. 计算机语言编程能力有哪些,除了编程语言,程序员还需要具备哪些能力
  6. linux挂载media装服务,CentOS8服务器入门系列教程(五):Linux挂载光盘、yum安装软件包...
  7. 操作系统学习1:操作系统概述
  8. 【硬件基础】制作直流电源
  9. 【蓝桥java】递归基础之输出连续数字
  10. 【java】Maven工程引入各种jar包的功能