2018-05-04

git的基本使用

一、概述

先用一幅图,从总体上描述主要git命令的工作流程

  • workspace: 本地的工作目录。(记作A)
  • index:缓存区域,临时保存本地改动。(记作B)
  • local repository: 本地仓库,只想最后一次提交HEAD。(记作C)
  • remote repository:远程仓库。(记作D)

二、命令笔记

以下所有的命令的功能说明,都采用上述的标记的A、B、C、D的方式来阐述。

初始化

  • git init //创建
  • git clone /path/to/repository //检出
  • git config --global user.email "you@example.com" //配置email
  • git config --global user.name "Name" //配置用户名

操作

  • git add <file> // 文件添加,A → B
  • git add . // 所有文件添加,A → B
  • git commit -m "代码提交信息" //文件提交,B → C
  • git commit --amend //与上次commit合并, B → C
  • git push origin master //推送至master分支, C → D
  • git pull //更新本地仓库至最新改动, D → A
  • git fetch //抓取远程仓库更新, D → C
  • git log //查看提交记录
  • git status //查看修改状态
  • git diff//查看详细修改内容
  • git show//显示某次提交的内容

撤销操作

  • git reset <file>//某个文件索引会回滚到最后一次提交, C → B
  • git reset//索引会回滚到最后一次提交, C → B
  • git reset --hard // 索引会回滚到最后一次提交, C → B → A
  • git checkout // 从index复制到workspace, B → A
  • git checkout -- files // 文件从index复制到workspace, B → A
  • git checkout HEAD -- files // 文件从local repository复制到workspace, C → A

分支相关

  • git checkout -b branch_name //创建名叫“branch_name”的分支,并切换过去
  • git checkout master //切换回主分支
  • git branch -d branch_name // 删除名叫“branch_name”的分支
  • git push origin branch_name //推送分支到远端仓库
  • git merge branch_name // 合并分支branch_name到当前分支(如master)
  • git rebase //衍合,线性化的自动, D → A

冲突处理

  • git diff //对比workspace与index
  • git diff HEAD //对于workspace与最后一次commit
  • git diff <source_branch> <target_branch> //对比差异
  • git add <filename> //修改完冲突,需要add以标记合并成功

其他

  • gitk //开灯图形化git
  • git config color.ui true //彩色的 git 输出
  • git config format.pretty oneline //显示历史记录时,每个提交的信息只显示一行
  • git add -i //交互式添加文件到暂存区
a b c
1231 f dad
1231213 safsdfasdfffffff
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来。这样一来,任何一处协同...
    __silhouette阅读 16,180评论 5 147
  • Git 命令行学习笔记 Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来...
    sunnyghx阅读 4,132评论 0 11
  • iOS开发中有时候不可避免的会使用到OC和Swift的混编,这时候就需要建立桥接文件连接不同语言的类库 最近项目中...
    丶Destinyxl阅读 15,955评论 16 27
  • 今天早读学习的是赖老师学说集之杀人说、文中说的人有生命与慧命,教育不当慧命全无要生命又有何用?有的父母没有思考没有...
    道之尊德之贵阅读 254评论 0 1
  • 今天是橡皮章制作,特意让大宝请假过来一起上课,大宝问:老师会不会很严肃?显出一点的小紧张。 对于橡皮章,停留在读书...
    鹰飞飞阅读 289评论 1 3

友情链接更多精彩内容