git的实际应用场景

  • 本文章的场景主要来源于实际工作,用于记载回看;
  • 持续更新,最后更新日期:2024-03-23
  • 软件:Git BASH、GitK、Git GUI三者配合使用

1、git reset < file >

  • 作用:把文件从暂存区状态重置为工作区状态,即不再被标记为待提交状态,仅仅是一个状态的改变,所以文件内容以工作区的为准。
  • 场景:有些提交对文件的类型有作出要求,比如一些程序代码文件为一个提交,一些依赖文件为一个提交,一些压缩包为一个提交,这样后续查看历史提交时就会清晰明了。所以当本次提交是准备提交程序代码文件时,但不小心把xxx.so或xxx.tar.gz等一些无关文件也git add了,此时就可以用git reset < file >把不需要的文件从暂存区状态重置回工作区状态。

2、git checkout – < file >

  • 作用:撤销工作区中对该文件的修改,它会用暂存区或者最近一次提交中的文件版本来覆盖工作区中的文件,也就是修改文件后退出且不保存的效果。
  • 场景:目前用的比较少,有特殊用途意义再回来补充。

3、git rm --cached < file >

  • 作用:会从git的索引(即暂存区)中移除,但它的物理文件仍然保留在工作区中,并且git将不再追踪该文件的变更。
  • 场景:修改源码并编译后可能会产生一些中间件,这些中间件是不需要被追踪且提交的,若.gitignore文件中对于新代码编译后产生的新的中间件没有作忽略处理,那么这些中间件会被git列为“Untracked files”,这时用git status查看工作区是不干净的,这时就要更新.gitignore的内容以达到git可以忽略中间件的追踪。如果发现.gitignore对中间件不产生作用,看看是不是中间件不小心被git add到了暂存区或是否曾经提交过仓库,这时就要使用git rm --cached < file >取消git对某个中间件的追踪,如果是被提交过仓库,则需要在git rm --cached < file >后将此次删除更改提交,.gitignore中的条目才会生效,阻止git再次跟踪该文件。

3、git rebase -i HEAD~n

  • 作用:允许修改历史中的一系列提交,使它们基于新的基准点。
  • 场景:主要用于修改某次提交的提交信息或提交内容,比如上上次提交时,多提交了一个不同类型的文件,现在需要把这个文件从那次提交中移除,就可以使用git rebase -i HEAD~2,这时会打开一个编辑器,可以为每一次提交指定一个操作,因为我们要修改提交内容,则操作选择为edit。保存退出后,git会按照你指定的操作开始重基过程,这可能会涉及修改提交的内容、合并提交、修改提交信息等,若过程中遇到冲突,则解决冲突。每修改完一次提交后,使用git rebase --continue命令继续重基过程,或使用git rebase --abort命令取消重基。
  • 操作参数可参考如下:
    • pick:保留该提交,不做任何修改。
    • reword:保留该提交,但修改其提交信息。
    • edit:保留该提交,但在重基过程中暂停,允许你修改该提交的内容。
    • squash 或 s:将该提交与上一个提交合并。
    • fixup:类似于squash,但会丢弃该提交的提交信息。
    • drop 或 d:删除该提交。

4、git commit --amend

  • 作用:更改最近一次提交的提交信息或提交内容。
  • 场景:一般是加上-m参数,即git commit --amend -m “”,仅用来修改提交信息,这是比较实用的用法。

5、git push add master:master

  • 作用:用于将本地的master分支推送到远程仓库origin的master分支。
  • 场景:master:master表示将本地的master分支推送到远程仓库origin的master分支,冒号前面是本地分支,冒号后面是远程仓库分支,若远程仓库没有所指定的分支,即创建该分支。

相关推荐

  1. git实际应用场景

    2024-03-28 04:20:02       38 阅读
  2. Git实际应用场景分析

    2024-03-28 04:20:02       36 阅读
  3. Git常用命令、场景及其实例

    2024-03-28 04:20:02       58 阅读
  4. 前端实现websocket应用场景以及逻辑实现

    2024-03-28 04:20:02       58 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-28 04:20:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-28 04:20:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-28 04:20:02       82 阅读
  4. Python语言-面向对象

    2024-03-28 04:20:02       91 阅读

热门阅读

  1. Docker的常用命令

    2024-03-28 04:20:02       37 阅读
  2. 数据分析---SQL基础

    2024-03-28 04:20:02       38 阅读
  3. 失业我们要直面恐惧乐观应对,早做准备和计划

    2024-03-28 04:20:02       40 阅读
  4. SSRF漏洞

    2024-03-28 04:20:02       39 阅读
  5. FAST-LIO2代码解析(一)

    2024-03-28 04:20:02       49 阅读
  6. codeforces - 1703 - D - Double String (字符串)

    2024-03-28 04:20:02       40 阅读
  7. 2024年通信安全员考试真题题库

    2024-03-28 04:20:02       40 阅读
  8. vs code

    vs code

    2024-03-28 04:20:02      49 阅读
  9. Android中的有序广播与无序广播

    2024-03-28 04:20:02       47 阅读
  10. 基于STM32的智能书房系统的设计

    2024-03-28 04:20:02       32 阅读
  11. Vue项目中引入地图的详细教程

    2024-03-28 04:20:02       38 阅读
  12. tewa-707e光猫超级密码获取方法

    2024-03-28 04:20:02       211 阅读