几条最常用的git命令

这是我参与11月更文挑战的第12天,活动详情查看:2021最后一次更文挑战

介绍

git是版本控制工具,平常开发中的使用还是非常普遍的,命令非常多,但是常用的就那些。

image.png

常用命令

本地操作

  • 查看代码修改

命令:git status

例:

>git status
On branch dev
Your branch is up to date with 'origin/dev'.

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   src/main/java/com/wqy/TaskOperation.java
复制代码

查看状态,会在结果中打印出当前分支、修改内容

  • 将变更加入暂存区

命令:git add .

“.”的目的是将当前目录下内容全部放入暂存区 例:

>git add .

复制代码

分支操作

  • 查看当前分支

命令:git branch -v

例:

>git branch -v
* dev                8b5310f Merge branch 'feature/name' into dev
  feature/wwa b7bee2 feat: <E6><8E><A8><E8><8D><90>-<E5><8F><91><E7><8E><B0><E9><A1><B5> - <E6><A0>
  feature/name 1b9c1a4 feat: <E6><8E><A8><E8><8D><90><E5><AE><A1><E6><A0><B8>
  master             162d523 1.<E8><AE><B2><E8><82><A1><E5><A0><82><E6><95><B0><E6><8D><AE><E5><90>
  pdt                a133379 feat: <E5><A2><9E><E5><8A><A0>pdt<E5><88><86><E6><94><AF>
复制代码

查看分支结果会打印出所有分支以及上次操作记录

  • 切换分支

命令:git checkout [分支名称]

例:

>git checkout feature/name
Switched to branch 'feature/name'
D       src/main/java/com/wqy/service/package-info.java
A       src/test/java/com/wqy/mapper/NameMapperTest.java
A       src/test/java/com/wqy/util/RedisListTest.java
Your branch is up to date with 'origin/feature/name'.
复制代码

切换分支,结果会打印出分支改变内容

  • 新建分支

命令:git branch [新分支名称]

例:

>git branch aa

复制代码

新建分支,默认根据当前分支创建新分支

stash操作

  • 保存当前代码

命令:git stash

例:

>git stash
Saved working directory and index state WIP on dev: 8b533kk Merge branch 'feature/name' into dev
复制代码
  • 查看stash集合

命令:git stash list

例:

>git stash list
stash@{0}: WIP on dev: 8b3330f Merge branch 'feature/name' into dev
stash@{1}: WIP on name: d161368 feat: <E5><8F><91><E7><8E><B0><E9><A1><B5>-<E6>B4><E6><96><B0><E9><95><BF><E7><9F><A2><E5><BC><95>
stash@{2}: On dev: Uncommitted changes before Update at 2021/11/25 10:19
复制代码

列表会打印出全部分支的stash内容

  • 恢复stash内容

命令:git stash pop stash@{编号}

恢复stash内容,并删除此stash

例:

>git stash pop stash@{2}
Auto-merging src/main/resources/generator.properties
Removing src/main/java/com/wqy/service/package-info.java
On branch dev
Your branch is up to date with 'origin/dev'.

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        new file:   src/test/java/com/wqy/mapper/QQMapperTest.java
        new file:   src/test/java/com/wqy/mapper/AMapperTest.java
        new file:   src/test/java/com/wqy/util/RedisListTest.java

Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        deleted:    src/main/java/com/wqy/service/package-info.java

Dropped stash@{2} (30feafb08ef0efaa58995311417ecfee86de05)
复制代码

恢复操作,会在结果打印出改变内容

日常开发常用组合操作

经常会出现在不同分支上面写业务代码,当需要切换分支工作之前,代码还没写完整,不想提交,就要将代码保存到stash内,等再次切换回分支时恢复之前代码,不然一不注意就把代码带到切换后的分支上面了。

# 切换前查看分支
>git status
On branch dev
Your branch is up to date with 'origin/dev'.

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   src/main/java/com/wqy/TaskOperation.java
# 将内容放入本地暂存区        
>git add .       
# 添加到stash
>git stash
Saved working directory and index state WIP on dev: 8b533kk Merge branch 'feature/name' into dev
# 切换分支
>git checkout feature/name
Switched to branch 'feature/name'
D       src/main/java/com/wqy/service/package-info.java
A       src/test/java/com/wqy/mapper/NameMapperTest.java
A       src/test/java/com/wqy/util/RedisListTest.java
Your branch is up to date with 'origin/feature/name'.
# 切换分支,切换回上个分支
>git checkout dev
Switched to branch 'dev'
D       src/main/java/com/wqy/service/package-info.java
A       src/test/java/com/wqy/mapper/QQMapperTest.java
A       src/test/java/com/wqy/mapper/AMapperTest.java
A       src/test/java/com/wqy/util/RedisListTest.java
Your branch is up to date with 'origin/dev'.
# 查看stash集合
>git stash list
stash@{0}: WIP on dev: 8b3330f Merge branch 'feature/name' into dev
stash@{1}: WIP on name: d161368 feat: <E5><8F><91><E7><8E><B0><E9><A1><B5>-<E6>B4><E6><96><B0><E9><95><BF><E7><9F><A2><E5><BC><95>
stash@{2}: On dev: Uncommitted changes before Update at 2021/11/25 10:19
# 恢复stash内容
>git stash pop stash@{2}
复制代码

参考

Guess you like

Origin juejin.im/post/7035064575963693087