五、Git基础操作之正常提交

本人把基础操作分为两个部分:1)正常提交操作;2)撤销操作。主要因为撤销操作有多种场景,且同一命令的不同参数的结果可能大相径庭,故单独把撤销操作做为一节。

1. 获取项目的Git仓库

获取项目的Git仓库有两种方式:1)在本地目录初始化Git仓库,通过Git的提交操作新增项目文件至Git仓库,被Git管理;2)通过克隆已有的Git仓库到本地目录,被Git管理。

1.1 Git初始化本地目录
  • 使用git init命令初始化当前目录,操作结束后在本地生成.git仓库。
    git init命令初始化
1.2 克隆远程仓库到本地

若要通过克隆的方式的获取Git仓库,只需要知道远程仓库的Git地址,就可以通过git clone url的方式将其克隆到本地。

  • 远程仓库地址选用本人在GitHub上的一个测试项目,仓库地址为https://github.com/kivihub/test.git
    远程Git仓库
  • 通过git clone https://github.com/kivihub/test.git克隆远程仓库。
    克隆远程仓库到本地目录
2. 正常的提交流程
2.1 查看状态

通过git status命令查看当前状态。

  • 未跟踪状态
    未跟踪状态
  • 暂存状态
    暂存状态
  • 已提交状态
    已提交状态
  • 已修改状态
    已修改状态
2.2 状态变化图
状态变化图
2.3 暂存文件
  1. 未跟踪文件的暂存操作
    • 新建文件foo.txt(文件处于未跟踪状态)。
    • git add foo.txt,把文件提交至暂存区(文件处于已暂存状态)。
  2. 已修改文件的暂存操作
  • 编辑已暂存态已提交态的文件后,文件新增已修改状态
  • git add file,把文件提交至暂存区(文件处于已暂存状态)。
2.4 提交文件
  1. 提交暂存态文件
    git commit file
  2. 提交已修改态(跳过暂存态)和已暂存态文件
    git commit -a
1.本命令无视当前路径,它会提交`git status`里除`未跟踪态`以外的所有文件至git仓库。
2.相当于执行了两步操作: 
  a. git add 项目的根路径
  b. git commit
  1. git commit的常用参数
git commit -a 提交本项目除未跟踪态以外的所有文件至Git仓库。
git commit -m "commit description" -m后空格然后跟着本次提交的描述,可免去进入编辑页面。

Note:
1.编辑页面也有好处,你可以看到本次修改了文件。
2.若想在提交的编辑页面放弃本次提交,则不做输入退出就会放弃提交。
不做输入退出编辑后会放弃本次提交
2.5 修改/删除文件
  • 通过git命令操作,可根据参数修改文件工作区和暂存区的状态。
# 示例
`git rm file`           # 删除工作区和暂存区的指定文件
相当于执行了两步操作:
1. `rm file` 
2. `git add file`

`git rm --cached file`  # 只删除暂存区的指定文件,保留工作区的文件。
例如:一个应用场景是误将本该ignore的文件提交至暂存区,可进行如下操作:
1.通过此命令删除暂存区文件后,保留工作区文件
2.然后通过编辑.gitigore或者exlude文件忽略该文件
  • 非git命令操作:按序执行修改→暂存→提交操作。
2.6 查看历史和差异
  • 查看历史 git log
`git log`常用参数
-g                # 查看全部历史,相当于执行 git reflog
--oneline         # 显示为一行
--graph           # 图像化显示
--all             # 显示所有分支
--decorate        # 标注分支和标签
-number           # 显示近number次提交信息
-p                # 按补丁格式显示每次更新的差异(与git diff内容一致)
--stat            # 显示每次更新的文件修改统计信息

Note:可通过gitk命令运行图形化版本查看工具。Debian系列Linux发行版可通过sudo apt install gitk命令进行安装。

  • 查看差异 git diff
`git diff`   # 比较工作区和暂存区的差异

`git diff --cached `    # 比较暂存区和Git仓库的差异
`git diff --cached [commit|branch|tag]`    # 比较暂存区与指定commit的差异

`git diff HEAD`  # 比较工作区和Git仓库的差异
`git diff [commit|branch|tag]`    # 比较工作区和指定commit的差异

`git diff [commit|branch|tag] [commit|branch|tag]`   # 比较两个commit的差异

# Note:以上命令后面都增加文件路径,指定查看具体目录或文件的差异。
git diff 命令
附:常用shell操作命令
# 在Linux的shell里进行命令操作时难免会输错单词,这时可通过以下几个命令快速修正
`ctrl + w`   # 删除光标前一个word(等同于Vim编辑态的`ctrl + w`)
`ctrl + u`   # 清空本行(等同于Vim编辑态的`ctrl + u`)
`ctrl + l`   # 清屏,相当于执行`clear`
`ctrl + d`   # 退出shell,县挡土相当于执行`exit`
`cd`         # 进入当前用户home
`cd -`       # 返回刚才目录
`ln -s 源目录 目录连接` # 建立目录的软连接,例如:可在用户home建立git仓库的软连接,减少目录的切换操作。
`[tab][tab]` # 连续两次tab键,会提示当前的可能命令组合或可选路径
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,640评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,254评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,011评论 0 355
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,755评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,774评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,610评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,352评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,257评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,717评论 1 315
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,894评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,021评论 1 350
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,735评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,354评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,936评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,054评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,224评论 3 371
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,974评论 2 355

推荐阅读更多精彩内容