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. Nodejs初学者福音

    Nodejs+Express+MongoDb 搭建个人博客  001 我喜欢把任务或者工作分解成工作流来完成,如下,后面将会按照流程来详述,希望能为Nodejs初学者及推广Nodejs做出些努力. n ...

  2. python实用函数

    dir([obj]) 显示对象属性, 无参数显示全局变量的名字 help([obj]) 显示对象的文档字符串 int(obj) 将一个对象转换为整数 len(obj) 返回对象的长度 range([[ ...

  3. Python的设计模式学习

    1.工厂模式 #encoding=utf-8 __author__ = 'kevinlu1010@qq.com' class ADD(): def getResult(self,*args): ret ...

  4. hdu 3157 Crazy Circuits 有源汇和下界的最小费用流

    题目链接 题意:有n个节点,m个用电器.之后输入m行每行三个整数a,b,c; 节点a为正极(或者a 为 '+'即总的正极),b为该用电器的负极(b = '-'表示总的负极),c为该用电器要正常工作最小 ...

  5. Linux开启服务器问题(李蕾问题)

    每次启动192.168.1.223服务器时,都要执行这个命令! #:service iptables stop

  6. Automotive Security的一些资料和心得(7):AUTOSAR和Security

    1. 密码模块[1] 密码模块在Services Layer Configurable and common access to 密码子程序 硬件支持密码模块 2. 应用 应用和密码子程序分离 Cry ...

  7. yum和rpm命令详解

    rpm,全称RPM Package Manager,是RedHat发布的,针对特定硬件,已经编译好的软件包.安装之后就可以使用,不需要自行编译,以及之前对软件和硬件的检测,目录的配置等动作. yum, ...

  8. Java Web 前端高性能优化(二)

    一.上文回顾 上回我们主要从图片的合并.压缩等方面介绍前端性能优化问题(详见Java Web 前端高性能优化(一)) 本次我们主要从图像BASE64 编码.GZIP压缩.懒加载与预加载以及 OneAP ...

  9. Java集合类之栈Stack

    package com.test; import java.util.*; public class Demo7_3 { public static void main(String[] args) ...

  10. SPRING IN ACTION 第4版笔记-第五章BUILDING SPRING WEB APPLICATIONS-003-示例项目用到的类及配置文件

    一.配置文件 1.由于它继承AbstractAnnotationConfigDispatcherServletInitializer,Servlet容器会把它当做配置文件 package spittr ...