Git使用笔记

1.git配置

git config --global user.name "Your Name"
git config --global user.email "email@example.com"

2.git仓库

git init

3. 添加文件到缓存区

git add [your file name]
//添加目录下全部文件
git add .

4. 提交

git commit -m "your message about this commit for"

5. git checkout

1.切换到分之dev

git checkout dev

  1. 如果master分之和dev分之的最近一次提交commitID一致的话,那么在两个分之间切换会把改动也给带过去了,无论你add与否。
  2. 当两个分之的最近提交记录不一样的时候,如果在一个分之上修改了,但是没有提交,git不允许切换分之。

2.新建一个分之dev,并且切换到dev

git checkout -b dev

注意切换分之的时候如果,两个分之

3.强制切换分之

git checkout -f dev

如果master上有没有提交的修改则会被废弃

4.检出一个文件到工作区

  1. 从当前分之的暂存区检出一个文件到工作区
git checkout -- git.txt

这里 -- 是为了说明后面加的是一个文件,而不是一个分之,避免产生歧义。如果你有一个dev分之,又有一个dev文件,git checkout -- dev 会让git知道你是要检出文件而不是切换分之,所以-- 我们一般可以不写。
当暂存区中没有一次此文件的暂存时,那么检出到工作区的是当前分之记录里面的文件。

  1. 从某次提交中检出一个文件到工作区
git checkout commit_id -- file

这里你检出的文件,会被加入暂存区中,也就是你检出一个文件后,工作区和暂存区中的这个文件是一致的了,但是可能会和当前分之中的不一致。一般来说既然你要特地的检出一次commit的中一个文件到当前,那么它肯定和当前分之中的文件不一致

  1. 检出一个commit
git checkout commit_id

这里会把这个分之的检出到工作区和暂存区,但是这时你不在任何分之上,你可以使用git checkout branch回到一个分之上去,这时你就会回到master上,你的工作区和暂存区也会回到master上。

#这是你检出一个分之后的提示
Note: checking out '25ea3bef91db5b430bfbd25431bf9f8b9db2a028'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>
  1. 检查工作区
git checkout

注意这里就是git checkout。这时会去检查工作区

  1. 基于某一次提前,新建分之
git checkout -b <new-branch-name> commit_id`
  1. 基于当前分之创建一个没有提交历史的分之
git checkout --orphan <new-branch-name>

这个可以用来掩盖你之前混乱的提交历史,因为之前的提交的历史全都没有了

  1. 打补丁
git checkout -p <branch-name>

比较这个分之和当前分之之间的差异

6.git diff

  1. 比较工作区与暂存区
git diff [<path>...]

后面参数就是你要比较的,可以是一个或多个路径、文件,也可以不加从而比较全部

  1. 比较暂存区与最新本地版本库
git diff --cached [<path>...]
  1. 比较工作区与版本库
git diff HEAD [<path>....]
  1. 比较工作区与指定提交
git diff commit_id [<path>...]
  1. 比较暂存区与指定提交
git diff --cached [<commit_id>] [<path>...]
  1. 比较两个提交之间的差异
git diff [<commit-id>] [<commit-id>]
  1. 生成一个差异补丁
git diff --cached > <patch-name>
git diff --HEAD   >  <patch-name>
git diff <file>   >  <patch-name>

git apply --check <patch-name> 验证补丁,不输出任何内容就是对的
git apply <patch-name> 应用补丁

7. git reset

  1. 工作区,暂存区,HEAD都回到某个节点
git reset --hard <commit_id>
  1. 工作区不做改动,暂存区和HEAD回到某个节点
git reset --mixed <commit_id>
  1. 工作区,暂存区都不做改动,HEAD回到某个节点
git reset --soft <commit_id>
  1. 将暂存区的文件reset到HEAD中的
git reset HEAD -- [<file>...]

8.git merge

  1. 合并一个分之
git merge dev

注意这样合并可能会产生冲突,冲突的解决又会形成一个commit。

9.git rebase

git rebase master

这个基于master分之的最后一次提交然后把dev分之的commit重做一遍,这种模式下冲突的解决是不产生一次commit的

git pull --rebase

先拉取远端代码然后重做commit

使用git rebase 可以使你的提交记录只有一条直线

10. git stash

git stash -p

交互式命令,让你选择每个文件的操作方式,这样就可以暂存部分文件了

git stash save "msg"

暂存当前所有修改,暂时没发现可以只暂存部分文件的命令

git stash list

查看当前所有暂存

git stash apply stash@{index}

还原某个暂存,并不在stash list 中丢弃

git stash pop stash@{index}

应用并丢弃

git stash drop stash@{index}

不应用直接丢弃

git stash clear

不应用直接丢弃所有暂存

11. git apply

git apply --check patch
git apply --stat patch
git am -3 patch

12. git log

git log <file_name> //单个文件的提交记录
git log -p <file_name> //单个文件每次提交的diff
git log --author="name"
git log -1 --name-only --pretty=format: ' ' aa524b469c86ac056d63aefcd21108570a9ca1dc //一次提交中修改的文件
git log --stat //查看每个提交的修改文件

13. git show

git show <commit_id> <file_name> //某次提交中某个文件的修改

14. git branch

git branch -vv //可以查看当前分支对应的远程分支
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容

  • git 使用笔记 git原理: 文件(blob)对象,树(tree)对象,提交(commit)对象 tree对象 ...
    神刀阅读 3,714评论 0 10
  • 原文地址主要用到的命令: git config user.name 设置用户名 git config user....
    AFinalStone阅读 439评论 0 2
  • 1. 安装 安装完成后,需要一步设置,在命令行中输入: git config --global user.name...
    kevenZheng阅读 301评论 0 0
  • Git常用语法 [TOC] Git简介 描述 ​ Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,...
    君惜丶阅读 3,444评论 0 13
  • 转载颜海镜的文章 转自segmentfault 这篇文章记录个人常用的一些命令,和记不住的一些命令。 《GotGi...
    7ack阅读 979评论 0 2