Git操作

  • 设置用户名和邮箱(--global表示全局)

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

  • 创建仓库

    - git init

  • 将文件添加到暂存区

    - git add example.txt

  • 把文件提交到仓库

    - git commit -m "提交说明"

  • 查看文件修改记录

    - git diff example.txt

  • 查看暂存区状态

    - git status

  • 查看提交日志

    - git log
    - 如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数

  • 版本回退

    - git reset --hard HEAD^
    - 用HEAD表示当前版本,HEAD^表示上一个版本,HEAD^^表示上上一个版本,往上100个版本用HEAD~100表示
    - git reset --hard commit_id
    - 回到commit_id代表的某个版本
    - 以上操作会删除git log记录

  • 撤销修改

    • 修改后 未add(添加到暂存区) 需要撤销修改时:
      - git checkout -- example.txt 或 手动删除工作区修改
      - 工作区 : clean 暂存区: clean
    • 修改后 add了(未commit) 再次修改文件 要撤销第二次修改时:
      - git checkout -- example.txt (将暂存区恢复到工作区)
      - 暂存区有第一次的修改需要commit
    • 修改后 add了(未commit),需要撤销修改时:
      - git reset HEAD example.txt (将暂存区修改删除)
      - 此时工作区的修改还未撤销
      - git checkout -- myfile.txt (撤销工作区修改)
    • 修改后 add并commit了,需要撤销修改时:
      - git reset --hard HEAD^ (版本回退)**
  • 删除文件

    • 将文件放入暂存区并提交
      - git add example.txt
      - git commit -m "new commit"
    • 删除文件
      - rm example.txt
    • 情况一:确定要从版本库中删除该文件
      - git rm example.txt
      - git commit -m "remove example.txt"
    • 情况二:恢复误删
      - git checkout -- example.txt
      - git checkout其实是用版本库里的版本替换工作区的版本,只能恢复文件到提交的最新版本
  • 添加远程库

    • 关联一个远程库
      - git remote add origin git@server-name:path/repo-name.git
      - 远程仓库默认名称为 origin
    • 查看远程库信息
      - git remote
      - git remote -v 显示详细信息
    • 删除远程库
      - git remote remove origin
      - origin为默认仓库名
    • 推送本地内容
      - git push -u origin master
      - 若提示要先fetch,则执行git pull origin master
      - 成功后提示输入描述为什么合并是必须的,操作如下:
        press "i"
        write your merge message
        press "esc"
        write ":wq"
        then press enter
      - 然后再执行以上操作
  • 创建与合并分支

    - 查看分支:git branch

    - 创建分支:git branch <name>

    - 切换分支:git checkout <name>

    - 创建+切换分支:git checkout -b <name>

    - 合并某分支到当前分支:git merge <name>

    - 删除分支:git branch -d <name>

    - 强制删除分支:git branch -D <name>

  • 解决冲突

    - branch_zj分支对example.txt做了修改,add和commit后,切换到master分支
    - 同样在master分支修改example.txt,add和commit后,没有这一步一般不会冲突
    - 执行:git merge branch_zj
    - 提示冲突,修改文件
    - 再执行add和commit
    - git branch -d branch_zj 删除被合并的分支

  • 强制禁用Fast forward模式

    - git merge --no-ff -m "commit messagee" branch_zj

  • 储藏当前工作区修改

    • git stash
      - 把当前分支所有没有 commit 的代码先暂存起来
    • git stash list
      - 列出暂存记录
    • git stash apply [stash_id]
      - 恢复暂存代码,如果省略 stash_id 默认恢复最近的暂存记录
    • git stash drop [stash_id]
      - 删除指定暂存记录,若没指定stash_id则删除最近一条stash记录
    • git stash pop [stash_id]
      - 还原代码,并删除该条stash记录
    • git stash clear
      - 就是清空所有暂存区的记录
  • 推送分支

    - git push origin <branch_name>

  • 创建标签

    • git tag <tag_name>
      - 默认标签是打在最新提交的commit上
    • git tag <tag_name> <commit_id>
      - 为指定的提交创建标签
    • git tag
      - 查看标签列表,标签是按字母排序的
    • git show <tag_name>
      - 查看标签信息
    • git tag -a <tag_name> -m "description"
      - 创建带说明的标签
  • 操作标签

    • git tag -d <tag_name>
      - 删除标签
    • git push origin <tag_name>
      - 推送某个标签到远程
      - 创建的标签都只储存在本地,不会自动推送到远程
    • git push origin --tags
      - 一次性推送全部尚未推送到远程的本地标签
    • 删除远程标签
      - git tag -d <tag_name> 本地删除
      - git push origin :refs/tags/<tag_name> 远程删除
  • 忽略特殊文件

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

推荐阅读更多精彩内容

  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 12,639评论 4 54
  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 13,615评论 9 163
  • 如何快速掌握git操作 本人以前也看过git教程的pdf,但是说的都不太让人理解,让人难以掌握。但是在现实开发中,...
    安卓小生阅读 567评论 0 5
  • 让我告诉你,什么才是醇酿梅子酒。 初识梅子酒,是岁月和故事 初识梅子酒,是通过一部日本电影——《海街日记》。在外婆...
    好用哦阅读 727评论 0 1
  • 不知道想了多少次要在简书上写些东西留下些回忆,但都没有再提起那支被生活摧残腐蚀的笔。2月份过完元宵节很热血的投身于...
    tang小米阅读 252评论 2 2