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. spring IOC源码分析(2)

    refresh这个方法包含了整个BeanFactory初始化的过程,定位资源由obtainFreshBeanFactory()来完成, protected ConfigurableListableBe ...

  2. UILabel 属性祥记

    创建label UILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMake(20, 40, 280, 80)]; 设置背景色 label1. ...

  3. Maven仓库详解

    转载自:Maven入门指南④:仓库   1 . 仓库简介 没有 Maven 时,项目用到的 .jar 文件通常需要拷贝到 /lib 目录,项目多了,拷贝的文件副本就多了,占用磁盘空间,且难于管理.Ma ...

  4. MyBatis之传入参数——parameterType(转)

    鸣谢:http://blog.csdn.net/liaoxiaohua1981/article/details/6862764 ------------------------------------ ...

  5. 用JavaScript探测页面上的广告是否被AdBlock屏蔽了的方法

    每个人都讨厌广告.看电视.看电影.看优酷.看网页时,对满天飞的广告也是深恶痛绝.广告是一个不招人喜欢的东西.但是,对一个中小网站站长/博客主来说,广告几乎是唯一的能成支持网站/博客正常运转的资金来源. ...

  6. CSS 实现背景半透明

    IE过渡滤镜 + CSS3 rgba 即可完美实现. 具体实现代码如下: .transparent {     background:rgba(0, 0, 0, 0.3);     filter:pr ...

  7. bzoj 1133: [POI2009]Kon dp

    1133: [POI2009]Kon Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 242  Solved: 81[Submit][Status][D ...

  8. Ubutn14.04下caffeine工具不显示在工具栏中的问题

    安装过程请参考Ubuntu 14.04下安装Caffeine 2.6.2 阻止显示器进入睡眠状态 至于为什么不显示在任务栏,这不是程序的bug,你可以平ps -e看一下,任务已经在运行. 其实这是新版 ...

  9. 网页中插入Flvplayer视频播放器代码

    http://blog.csdn.net/china_skag/article/details/7424019 原地址:http://yuweiqiang.blog.163.com/blog/stat ...

  10. android activity在横竖屏切换的时候不重新调用onCreate方法

    在安卓系统中,横竖屏切换会默认重新调用onCreate等生命周期方法,如果此时有一些临时数据没有保存下来,很有可能会导致该数据丢失. 因此我们可以进行以下设置,来避免恒切换时重新调用onCreate方 ...