Git常用命令

前言

这里是我用于记录git命令的笔记,记录一些git常用和一些记不住的命令,忘记的时候用于查阅,后面会随着知识积累慢慢增加。

一、用户信息配置

  • git config user.name "xxx" --global全局配置用户名字
  • git config user.email "xxx@xx.com" -global全局配置邮箱
  • git config --list --local/global/system查看不同作用域的配置信息

二、初始化仓库

  • git init在现有目录初始化仓库
  • git init <project-path>新建项目并初始化仓库

三、提交修改

  • git status 查看git状态
  • git add <file-name>提交某个文件的修改
  • git add -u提交已经跟踪的所有修改
  • git add . git add --all提交所有修改(二选一)
  • git commit -m "<message>"提交修改到仓库
  • git commit -a -m "<message>" git commit -am "<message>"直接提交所有的已跟踪的修改到仓库
  • git commit --amend git commit --amend --no-edit修改上一次提交

四、文件删除/重命名

  • git rm <file-name>从工作区删除文件,并且从仓库中移除对某个文件的跟踪
  • git rm --cached <file-name>只移除对该文件的跟踪,但是依旧在工作区保留文件
  • git mv <old-name> <new-name>安全重命名
  • git clean删除未跟踪并且未被.gitignore忽略的文件
  • git clean -n查看哪些文件将会被删除,但是不会真正删除

五、查看提交历史

  • git diff查看工作区和暂存区之间的区别
  • git diff -- <file-name>查看某个文件工作区和暂存区之间的区别
  • git diff --cached用于查看暂存区和上一个提交之间的区别
  • git diff HEAD用于展示工作区和上一次提交之间的区别
  • git diff <commit-id> <commit-id>用于展示两个提交之间的区别
  • git log用于查看所有的提交

  • git log -<number>用于查看最近n次提交

  • git log -p用于展示每次提交log以及每次的改动

  • git log --stat用于展示每次提交log以及每次的改动的简要统计

  • git log --oneline用于展示一行简略信息

  • git log --graph用简单图形展示

  • git show用于展示上一个提交的修改

  • git show <commit-id>用于展示特定提交的修改

  • git show --name-only <commit-id>用于展示特定提交的修改的文件名

  • git reflog打印最近操作所对应的commit id

六、代码回滚

  • git checkout <file-name>撤销工作区某个文件修改

  • git checkout .撤销所有文件

  • git checkout <commit-id> <file-name>恢复某个commit的指定文件到暂存区和工作区

  • git reset <file-name>撤销当前暂存区的修改

版本回退

  • git reset --soft <commit-id>只移动仓库中HEAD指针的位置,工作区和暂存区的修改都不变
  • git reset --mixed <commit-id>移动HEAD指针的位置,并使用回退的到版本重置暂存区,工作区的修改保持不变
  • git reset --hard <commit-id>移动HEAD指针位置,并使用回退的到版本重置工作区和暂存区,保持与指定的提交一致

重置修改

  • git revert <commit-id>新建一个提交重置目标提交

  • git revert -n <commit-id>重置目标提交,但是不会新建提交,而是修改工作区和暂存区

  • git revet <start-id>...<end-id>重置多个提交(不包括start-id,但是包括end-id)

  • git revert --continue在revert遇到冲突并解决冲突后,继续执行撤销操作

  • git revert --quit终止revert,但保留当前的结果

  • git revert --abort撤销revert

七、分支

HEAD:指当前分支的最新提交点

  • git branch列出本地所有分支

  • git branch -r列出所有远程分支

  • git branch -a列出所有本地和远程分支

  • git branch -v查看分支的详细信息

  • git branch <branch-name>新建分支

  • git checkout -b <branch-name>新建分支并切换分支

  • git checkout <branch-name>切换分支

  • git checkout -切换到上一个分支

  • git branch -d <branch-name>删除分支(针对已经合并过的分支)

  • git branch -D <branch-name>删除分支(不管是否合并)

  • git merge <branch-name>合并分支

  • git merge --no-ff <branch-name>不使用fast-forward模式合并

  • git cherry-pick <commit-id>挑选一个commit合并到当前分支

  • git cherry-pick <branch-name>挑选指定分支的最新提交

  • git cherry-pick --quit退出操作,保留当前进度

  • git cherry-pick --abort撤销本次操作

八、Tag

  • git tag查看所有tag

  • git tag -l <tag-name>筛选相应的tag

  • git tag --points-at <commit-id>查看某个commit上所有的tag

  • git show <tag-name>查看某一个tag

  • git show-ref --tags查看所有tag以及它们分别对应的commit

  • git tag <tag-name>新建tag

  • git tag <tag-name> <commit-id>在指定的提交新建tag

  • git tag -a <tag-name> -m <message>添加一个tag和message

  • git tag -d <tag-name>删除tag

九、临时加塞紧急任务

  • git stash新建stash

  • git stash save <message>指定你想要的messge信息

  • git stash -u将未跟踪的文件也加入暂存

  • git stash -a将所有文件加入暂存(即使该文件被git忽略)

  • git stash list查看暂存的历史

  • git show stash@{<number>}查看某一个次特定的暂存

  • git stash apply取出最近的暂存

  • git stash apply <number>取出目标暂存

  • git stash pop取出最近暂存,并删除该暂存的记录

  • git stash drop删除最近暂存

  • git stash drop <number>删除目标暂存

  • git stash clear清空历史

十、变基(重放)

  • git rebase <branch-name>合并分支
  • git rebase -i <commit-id可以交互式的操作到commi-id为止的提交(不包括commit-id所指向提交)的所有提交

十一、远程仓库

  • git clone <url>拉取代码,并使用默认的远端仓库的名字

  • git clone <url> <new-name>拉取代码,自定义本地仓库名字

  • git remote add <remote-name> <remote-url>添加远程仓库

  • git remote -v查看远端仓库信息

  • git remote remove <remote-name>删除远程仓库

  • git remote rename <old-remote-name> <new-remote-name>重命名远程操作名字

  • git push <remote-name> <branch-name>推送分支到特定的远程仓库,如果只有一个远程仓库可以省略,第一次推送需要加入-u参数

  • git push <remote-name> <tag-name>推送指定tag到远端

  • git push <remote-name> --tags推送所有tag到远端

  • git fetch拉取更新

  • git pull获取远端仓库更新,并自动合并到本地分支(相当于git fetch && git merge

  • git pull --rebase使用rebase方式拉取更新

具有参考的文章

猴子都能懂得git入门
可视化练习git命令

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

推荐阅读更多精彩内容

  • 配置 git config --global user.name [name] git config --glob...
    jamalping阅读 381评论 0 0
  • 简介   git有四个工作区域,分别是:工作目录(Workspace)、暂存区(Index/Stage)、本地仓库...
    gybguohao阅读 21,052评论 4 21
  • 今日份鸡汤:努力从来不嫌晚,只要你坚定开始就可以啦~ 进入正题: 1、Git clone(远程项目clone到本地...
    wyn_做自己阅读 3,340评论 0 0
  • git init 使用当前目录作为git仓库 git add git add <file>将该文件添加到缓存区,如...
    可甜可盐的心妍呀阅读 365评论 1 3
  • 本文记录了笔者的 git 操作笔记 基本配置 git init 初始化 git config --global u...
    杰森跟班阅读 515评论 0 2