个人推荐的Git知识学习网站:https://git-scm.com 。

git常用操作图

init -> add -> commit -> remote -> push

初始化本地仓库

cd ./gitDemo
$ echo "# Share" >> README.md
##初始化仓库
$ git init
##添加文件至暂存区
$ git add README.md
##提交文件至本地仓库
$ git commit -m "first commit"

commit 命令

## -m :提交注释
$ git commit -m "Story 182: Fix benchmarks for speed"
## -a :跳过使用暂存区域
$ git commit -a -m 'added new benchmarks'

提交至远程仓库

##添加远程仓库:git remote add [shortname] [url] ,仅需指定一次,会自动保存在git config中
$ git remote add origin https://github.com/HiMyCode/GitStudyDemo.git
##推送至远程仓库
$ git push -u origin master git push [remote-name] [branch-name]
##查看远程仓库信息:git remote show [remote-name]
$ git remote show origin
##修改远程仓库的本地简称:
$ git remote rename pb Paul
##移除远程仓库paul
$ git remote rm paul

注意:对远程仓库的重命名,也会使对应的分支名称发生变化,原来的 pb/master 分支现在成了 paul/master。

fetch/clone -> checkout

clone仓库

##git clone <版本库的网址> <本地目录名>
##使用默认仓库名grit
$ git clone git://github.com/schacon/grit.git
##使用仓库名mygrit
$ git clone git://github.com/schacon/grit.git mygrit

说明:git clone将其他仓库克隆到本地(从无到有),包括被clone仓库的版本变化,即.git文件夹里存放着与远程仓库一模一样的版本库记录。

pull更新仓库

##拉取远程服务器的master分支合并到temp分支中
$ git checkout temp
$ git pull origin master

fetch更新仓库

##查看当前配置的远程库
$ git remote
## -v :显示远程仓库地址
$ git remote -v
##获取远程仓库到本地,默认分支 master : git fetch [remote-name]
##拉取origin仓库的master分支到本地的origin/maste
$ git fetch origin master
##将拉取到本地的origin/maste合并到本地仓库
$ git merge origin/master
##拉取origin仓库的master分支到本地的temp分支
$ git fetch origin master:temp
##合并temp分支到master分支
$ git merge temp
##删除temp分支
$ git branch -d temp

说明:

  git clone 命令本质就是自动创建了本地的 master 分支用于跟踪远程仓库中的 master 分支。

  git pull 从原始克隆(本地仓库clone的仓库)的远端仓库中抓取数据后,合并到工作目录中的当前分支,存在产生冲突的可能,相当于git pull = git fetch + git merge。

  git branch 只是将远端的数据拉到本地仓库,并不自动合并到当前工作分支,只有当你确实准备好了,才能手工合并。

checkout检出

##切换分支到
git chectout temp

其他命令总结

rm 命令

##删除本地文件,暂存区文件仍在,git status 提示 Changes not staged for commit
$ rm grit.gemspec
##删除暂存区文件
$ git rm grit.gemspec
## -f :强制删除暂存区文件,删除那些修改过并且已经放到暂存区域的文件
$ git rm -f grit.gemspec
##使用 glob 匹配模式
##删除 log/ 目录下扩展名为 .log 的所有文件
$ git rm log/\*.log
##删除以 ~ 结尾的所有文件
$ git rm \*~

移动命令(重命名)

$ git mv README.txt README
##以上命令等价于以下三条命令
$ mv README.txt README
$ git rm README.txt
$ git add README

查看提交历史

##简要提交版本日志记录
$ git log
## -p:详细显示每次提交的内容差异,-n : 仅显示最近的n次更新:
$ git log -p -2
##查看文件提交历史作者,-L:指定开始和结束行
git blame -L 20,30 test.md

说明:因命令行查看log不便,暂不扩展。

撤销操作--修改最后一次提交

##撤销提交
$ git commit --amend
##修改提交信息,重新提交
$ git commit -m 'initial commit'
##新增遗漏文件
$ git add forgotten_file
##重新提交
$ git commit --amend

说明:上面的后三条命令最终只是产生一个提交,第二个提交命令修正了第一个的提交内容。

撤销操作--取消已经暂存的文件

##撤销本次所有暂存,暂存区的目录树会被 master 分支指向的目录树所替换,工作区不受影响
$ git reset HEAD
##撤销单个暂存文件
$ git reset HEAD benchmarks.rb
##直接从暂存区删除file文件工作区则不做出改变
$ git rm --cached <file>

撤销操作--取消对文件的修改(修改过但未暂存)

##用暂存区全部或部分文件替换工作区的文件,会清除工作区中未添加到暂存区的改动
$ git checkout .
$ git checkout -- <file>
##用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件,同时清除工作区和暂存区中未提交的改动
git checkout HEAD .
git checkout HEAD <file>

配置相关命令

##查看所有配置信息
$ git config --list
##查看指定变量配置信息
$ git config user.name
##配置用户名及邮箱
$ git config --global user.name "dis"
$ git config --global user.email dis@qq.com
##配置默认编辑器
$ git config --global core.editor vim
##配置默认差异分析工具
$ git config --global merge.tool vimdiff

说明:对于 git config --list 列出的重复的变量名,其来自不同的配置文件(比如 /etc/gitconfig 和 ~/.gitconfig),Git 实际采用的是最后一个。

tag 打标签

##列出现有标签
$ git tag
  • 作者:
    DeepInThought


    出处:
    https://www.cnblogs.com/DeepInThought


    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 【3】Git命令的更多相关文章

    1. Git初探--笔记整理和Git命令详解

      几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面c ...

    2. 工作中常用的git命令

      一 常用Git命令 git clone:(区分SSH or HTTP) git init:初始化仓库 二 Git命令详解 Git Bash下,cd /c git clone,从远程Git版本库克隆一份 ...

    3. 常用 Git 命令清单

      我每天使用 Git ,但是很多命令记不住. 一般来说,日常使用只要记住下图6个命令,就可以了.但是熟练使用,恐怕要记住60-100个命令. 下面是我整理的常用 Git 命令清单.几个专用名词的译名如下 ...

    4. 常look的Git命令

      常用的Git命令   命令  简要说明 git add 添加至暂存区 git add–interactive 交互式添加 git apply   应用补丁 git am  应用邮件格式补丁 git a ...

    5. ***Linux下使用git命令及github项目

      在linux下搭建git环境1.创建Github账号,https://github.com2.Linux创建SSH密钥: ssh-keygen  ##一直默认就可以了 3.将公钥加入到Github账户 ...

    6. 我所记录的git命令(非常实用)

      一.前言 记录一下工作中常用到的git命令,只是简单的笔记,欢迎大家交流... [ 顺便问下园友们,怎么感觉博客园发布的博客搜索有时都搜不到,后台编辑能填的都填写了,还是觉得搜索排名不高? 相同的标题 ...

    7. GIT命令行的使用

      新手了解 有不对的地方指点下 首先, 了解下什么是GIT,GIT是一款开元的分布式版本控制工具, 在世界上的所有分布式版本控制工具中,GIT是最简单,最流行,同时也是最常用的 相比于其他版本的控制工具 ...

    8. 简明 Git 命令速查表(中文版)

      原文引用地址:https://github.com/flyhigher139/Git-Cheat-Sheet/blob/master/Git%20Cheat%20Sheet-Zh.md在Github上 ...

    9. 常用 Git 命令清单 转

      我每天使用 Git ,但是很多命令记不住. 一般来说,日常使用只要记住下图6个命令,就可以了.但是熟练使用,恐怕要记住60-100个命令. 下面是我整理的常用 Git 命令清单.几个专用名词的译名如下 ...

    10. 日常开发使用GIT命令

      git是一种分布式的版本管理工具,现在我总结下日常使用的git命令 1)检出 git clone 地址 --检出代码 #这里的地址是代码池的地址,如Github或bitbucket 2)增加文件 gi ...

    随机推荐

    1. Linux磁盘和文件系统扩容彻底研究

      1.物理卷: LVM 逻辑卷的底层物理存储单元是一个块设备,比如一个分区或整个磁盘.要在 LVM 逻辑卷中使用该设备,则必须将该设备初始化为物理卷(PV). 2.卷组:物理卷合并为卷组(VG).这样就 ...

    2. linux 文件赋权限

      chown tomcat:tomcat /logs chmod 766 /logs

    3. webdriervAPI(定位一组元素)

      通过定位一组元素的方法来,来勾选自己需要勾选的选项. from selenium import webdriver from selenium.common.exceptions import NoS ...

    4. 重置fedora root密码

      本方法适用于fedora16(含)以上(使用GRUB2) 步骤如下: Step 1:系统菜单,在linux上按“e”键进行编辑 Step 2:使用上下键找到以字符串“linux”或“linux16”( ...

    5. 【VS开发】四大图像库:OpenCV/FreeImage/CImg/CxImage

      本文转载自:http://hi.baidu.com/xiaocuiman/blog/item/6e267c2bc4b1883f5243c108.html 1.对OpenCV 的印象:功能十分的强大,而 ...

    6. 最新 映客java校招面经 (含整理过的面试题大全)

      从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.映客等10家互联网公司的校招Offer,因为某些自身原因最终选择了映客.6.7月主要是做系统复习.项目复盘.LeetCode ...

    7. 最新 东方明珠java校招面经 (含整理过的面试题大全)

      从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.东方明珠等10家互联网公司的校招Offer,因为某些自身原因最终选择了东方明珠.6.7月主要是做系统复习.项目复盘.Leet ...

    8. 冲刺Noip2017模拟赛7 解题报告——五十岚芒果酱

      1.二叉树(binary) .二叉树 (binary.cpp/c/pas) [问题描述] 二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: ()若左子树不空,则左子树上所有结点的值均小于它的根结 ...

    9. 剑指offer32:把数组排成最小的数

      1 题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. 2 思路 ...

    10. Photon Server 实现注册与登录(四) --- 服务端响应登陆和注册

      前面已经整理过了服务端代码,MyGameServer.cs 和 ClientPeer.cs 对请求和响应进行了拆分.接下来处理对前端的响应 一.响应登陆请求 之前整理中,响应前端请求主要在类Clien ...