0.准备工作

0.1 git安装

 
图形客户端建议使用source tree,中文界面

http://www.sourcetreeapp.com/

0.3 git帮助信息

git help 
 
git help 指令名称
 

0.4 git配置

显示配置信息
git config -l --global
 
修改基本配置
git config --global user.name “姓名”
git config --global user.email “邮箱”
git config --global color.ui auto

git
config --global core.autocrlf input

git config --global push.default simple 

0.5 git日志

显示所有或某个文件的修改记录
git log <可选的文件名>

显示所有或某个文件的修改记录的概要(修改文件列别行数等)

git log --stat

显示某次提交中所有或某个文件的具体修改内容

git show <提交ID> <可选的文件名>
 

0.6 git操作记录(用于无限悔棋)

操作记录显示
git reflog show
 
$ git reflog show
1ab8fe7 HEAD@{0}: reset: moving to HEAD^
f902b09 HEAD@{1}: reset: moving to HEAD@{3}
1ab8fe7 HEAD@{2}: reset: moving to HEAD^
f902b09 HEAD@{3}: reset: moving to HEAD@{1}
1ab8fe7 HEAD@{4}: reset: moving to HEAD^
f902b09 HEAD@{5}: commit: test
1ab8fe7 HEAD@{6}: reset: moving to HEAD^
815cee5 HEAD@{7}: commit: test
1ab8fe7 HEAD@{8}: commit: added missed cacheLib.h
a724beb HEAD@{9}: pull: Merge made by the 'recursive' strategy.
 
回退到某次操作后的状态
git reset HEAD@{序号}
 
注意:没有提交到仓库中的代码无法恢复。
 

0.7 git仓库构成

查看本地仓库状态
git status
 
$ git status
On branch dev                                                  =》 本地仓库当前branch名称
Your branch is up-to-date with 'origin/dev'.    =》 本地仓库当前branch与远程仓库对应branch之间的差异
 
Changes to be committed:                               =》暂存区内容
  (use "git reset HEAD <file>..." to unstage)
 
        modified:   Makefile
 
Changes not staged for commit:                       =》工作区内容 (对仓库中文件的修改)
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)
 
        modified:   Makefile
 
Untracked files:                                                    =》工作区内容 (对私有文件的修改)                
  (use "git add <file>..." to include in what will be committed)
 
        build_native/
 
显示临时缓冲区内容
git stash list
 
$ git stash list
stash@{0}: On dev: clean 2
stash@{1}: On dev: clean
 
 
1.从远程仓库到本地仓库
 
创建新的本地仓库
git clone git@192.168.0.190:os.git <可选的本地仓库目录名称>
 
从远程仓库获取最新内容并合并到当前分支
git pull
 
从远程仓库获取最新内容但是不合并
git fetch
2.从本地仓库到远程仓库
本地仓库更新到远程仓库
git push
3.从本地仓库已有分支到私有分支
切换到已有分支
git checkout  <分支名称>
 
从当前分支创建一个新分支并切换到新分支
git checkout -b <新分支名称>
 
从某个提交创建一个新分支并切换到新分支(用于查看内容或者查找问题)
git checkout <提交ID> -b <新分支名称>
 
查看branch信息
 
git branch -v
 
删除某个branch
git branch -D <分支名称>
 
3.从私有分支到本地仓库已有分支
合并其他分支到当前分支
git merge  <其他分支名称>
 

如果有冲突,文件中会有如下内容:

<<<<<<< 

当前分支

=======

合并进来的分支

>>>>>>> 

解决冲突后,根据merge命令的提示将文件放入暂存区(stage区),然后提交

终止当前合并操作

git merge --abort

合并某个提交到当前分支

git cherry-pick <提交ID>

5.从工作区到暂存区
将工作区中的所有或某个文件放到暂存区(stage区)
git add <可选的文件或者目录名>
 
将工作区所有对仓库中代码的修改(tracked文件)放到暂存区(stage区)
git add -u
 
查看暂存区中对仓库中所有或某个文件的修改
git diff --cached <可选的文件或者目录名>
查看工作区中对仓库中所有或某个文件的修改
git diff <可选的文件或者目录名>
6.从暂存区到工作区
将暂存区中对仓库中所有或某个文件的修改恢复到工作区
git reset HEAD <文件或者目录名>
7.从暂存区到本地仓库
将暂存区中的内容提交到本地仓库(简单注释)
git commit -m "注释信息"
 
将暂存区中的内容提交到本地仓库(复杂注释,将会进入文本编辑界面)
git commit
修改上次提交的注释信息
git commit --amend  -m "注释信息"
8.从本地仓库到暂存区
恢复到某次提交前的状态(修改内容仍然在工作区)
git reset <提交ID^>
注意:本操作实质上是复位到某次提交的前一次提交,并用其内容覆盖暂存区的内容,但当前修改内容仍然在工作区
9.从本地仓库到工作区
取消对某个文件或者文件夹的修改
git checkout <文件或者目录名>   
注意:本操作实质上是用本地仓库中的数据覆盖工作区中的内容
 
恢复到某次提交前的状态(工作区修改内容被丢弃)
git reset <提交ID^>
注意:
1.本操作实质上是复位到某次提交的前一次提交,并用其内容覆盖暂存区和工作区的内容
2.如果工作区无修改内容,或者修改内容已保存到临时缓冲区,可以使用该命令查看某次提交的内容或者查找问题,查看完毕后通过reflog恢复。
10.从工作区到本地仓库
直接将文件提交到本地仓库(!!不经过暂存区,慎用)
git commit -a -m "注释信息"
 
11.从工作区到临时缓冲区
将工作区中所有对仓库中代码的修改(tracked文件)放到临时缓冲区(stash区)
git stash save "缓冲区描述"
12.从临时缓冲区到工作区
将临时缓冲区(stash区)中所有对仓库中代码的修改(tracked文件)弹出到工作区
git stash pop stash@{序号}
 
显示临时缓冲区某个缓存的内容
git stash show stash@{序号}
显示临时缓冲区某个缓存的内容
git stash show stash@{序号}
 

git日常操作的更多相关文章

  1. Git 日常操作

    本地新建Git库步骤: 初始化git库:git init 建立本地和远程的关联: git remote add origin ip:端口/ 项目.git 从远程下载所有分支到本地:git  fetch ...

  2. Git日常操作指令

    1. 将本地项目上传到码云: ①. 码云上创建一个项目 ②. 本地文件项目内右键git bash进入git控制台 ③. git init 命令   -- 会在本地创建一个.git文件夹 ④. git ...

  3. 从零开始使用git第二篇:git的日常操作

    从零开始使用git 第二篇:git的日常操作 第一篇:从零开始使用git第一篇:下载安装配置 第二篇:从零开始使用git第二篇:git实践操作 第三篇:从零开始使用git第三篇:git撤销操作.分支操 ...

  4. 版本控制工具——Git常用操作(下)

    本文由云+社区发表 作者:工程师小熊 摘要:上一集我们一起入门学习了git的基本概念和git常用的操作,包括提交和同步代码.使用分支.出现代码冲突的解决办法.紧急保存现场和恢复现场的操作.学会以后已经 ...

  5. 版本控制工具——Git常用操作(上)

    本文由云+社区发表 作者:工程师小熊 摘要:用了很久的Git和svn,由于总是眼高手低,没能静下心来写这些程序员日常开发最常用的知识点.现在准备开一个专题,专门来总结一下版本控制工具,让我们从git开 ...

  6. Git日常须知

    基本操作: git init 初始化环境 git add . 管理文件 git status 查看状态 git diff 文件名 查看修改内容 git commit -m '' 提交文件 git lo ...

  7. git 日常使用从入门到真香

    目录 git 日常使用从入门到真香 一.Git简介 二.Git常用命令 三.git操作流程 四.报错处理 git 日常使用从入门到真香 一.Git简介 Git是一个开源的分布式版本控制系统,可以有效. ...

  8. 解决git rebase操作后推送远端分支不成功的问题

    转:解决git rebase操作后推送远端分支不成功的问题 前段时间在工作中同事在rebase时遇到一个问题来问我,今天突然想起来觉得有必要记录一下. 在我们日常工作中,经常使用git座位代码管理工具 ...

  9. git日常使用的常用命令总结

    git日常使用的常用命令总结 git 是什么? Git是目前世界上最先进的分布式版本控制系统(没有之一). Git(读音为/gɪt/.)是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常 ...

随机推荐

  1. 关于return和exit

    关于return和exit 在子进程退出的时候有两种方式,exit和exec族函数,不能使用return,为什么不能用return呢,exit改成return 会出现父子进程又各自重复开始进行. 1. ...

  2. MVC-ActionResult解说

    HttpNotFoundResult: 专门用来响应Http404找不到网页的错误,在System.Web.Mvc.Controller类别中内建了一个HttpNotFound()方法,可以很方便的回 ...

  3. 17款code review工具

    本文是码农网原创翻译,转载请看清文末的转载要求,谢谢合作! 好的代码审查器可以大大地帮助程序员提高代码质量,减少错误几率. 虽然现在市场上有许多可用的代码审查工具,但如何挑选也是一个艰巨的任务.在咨询 ...

  4. mysql procedure返回多数据集

    返回多数据集写法:第一种 DROP PROCEDURE IF EXISTS `p_query_user` ; DELIMITER // CREATE PROCEDURE p_query_user( p ...

  5. 卡牌手游源码《暗黑世界V1.3》数据库表说明文档!!!

    原地址:http://blog.csdn.net/uxqclm/article/details/11970761 欢迎来到9秒:www.9miao.com 由于看到论坛中有人询问需求<暗黑世界V ...

  6. ASP.net Application及Session 的start end 方法总结

    经过几天的摸索,试验,今天终于可以将Application及Session对象的Start和End方法做下总结了. Application_start: 第一个访问网站的用户会触发该方法. 通常会在该 ...

  7. 1101-Trees on the Level

    描述 Trees are fundamental in many branches of computer science. Current state-of-the art parallel com ...

  8. 图像色彩空间YUV和RGB的差别

    http://blog.csdn.net/scg881008/article/details/7168637 假如是200万像素的sensor,是不是RGB一个pixel是2M,YUV是1M? 首先, ...

  9. RxJava开发精要6 – Observables组合

    原文出自<RxJava Essentials> 原文作者 : Ivan Morgillo 译文出自 : 开发技术前线 www.devtf.cn 转载声明: 本译文已授权开发者头条享有独家转 ...

  10. stream_iterator、ostream_iterator 使用初探

    STL定义了供输入及输出的iostream iterator类,称为 istream_iterator和ostream_iterator,分别支持单一型别的元素的读取和写入. 使用方法: 1.包含头文 ...