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. 【Django】基于Django架构网站代码的目录结构

     经典的Django项目源码目录结构 Django在一个项目的目录结构划分方面缺乏必要的规范.在Django的官方文档中并没有给出大型项目的代码建议目录结构,网上的文章也是根据项目的不同结构也有适当的 ...

  2. 2016032901 - ubuntu安装jdk

    在ubuntu上安装jdk,然后网上大部分相同的教程配置,结果运行java,javac,java -version总是出现莫名奇妙的问题. 原先配置完之后,运行java -version后出现下面内容 ...

  3. cocos2d lua的cclog 在logcat中显示

    -- cclog cclog = function(...) release_print(string.format(...)) end 改成这样就可以了

  4. sqlserver分页;mysql分页;orcale分页 的sql 查询语句

    一,sqlserver分页: )) ID FROM 表名 AS 表名1_1 ORDER BY ID)) ORDER BY ID; 二:mysql分页 )*每页显示的数据条数,当前页码 * 每页显示的数 ...

  5. 关于Windows环境下安装Android模拟器Genymotion的教程

    打开Genymotion的官网www.genymotion.com,点击按钮"get genymotion", 选择"Free"下的"DOWNLOAD ...

  6. linux下查看文件编码及修改编码

    http://blog.csdn.net/jnbbwyth/article/details/6991425 查看文件编码在Linux中查看文件编码可以通过以下几种方式:1.在Vim中可以直接查看文件编 ...

  7. 如何启动 SQL Server Agent(SQL Server 配置管理器)

    如何启动 SQL Server Agent(SQL Server 配置管理器) SQL Server 2008 R2 其他版本   4(共 6)对本文的评价是有帮助 - 评价此主题 可以从 SQL S ...

  8. asp.net 中 .ASPX 与.CS文件的关系

    .aspx文件继承自.cs文件 虽然一个 Web 窗体页由两个单独的文件组成,但这两个文件在应用程序运行时形成了一个整体.项目中所有 Web 窗体的代码隐藏类文件都被编译成由项目生成的动态链接库 (. ...

  9. *[topcoder]LittleElephantAndBalls

    http://community.topcoder.com/stat?c=problem_statement&pm=12758&rd=15704 topcoder的题经常需要找规律,而 ...

  10. java中的CAS

    转自:http://www.blogjava.net/mstar/archive/2013/04/24/398351.html Atomic 从JDK5开始, java.util.concurrent ...