git常用命令

git add

git add:将文件的更改添加到暂存区(Staging Area),表示你希望将这些更改包含在下一次提交中。可以使用 git add <file> 来添加特定文件,也可以使用 git add . 来添加所有更改过的文件。

1
2
3
git add 要提交的文件
或者全部提交
git add .

git commit

git commit:将暂存区中的所有更改提交到版本库(Repository),创建一个新的提交记录。提交记录包含了所做的更改的描述信息,这样可以为这次更改创建一个历史记录。提交时可以使用 -m 参数来添加提交信息,例如:git commit -m "Add new feature"

1
2
git commit -m "更改的描述信息"
git commit -s -m "更改的描述信息"

git log

git log命令用于显示提交日志信息,它会列出当前分支的提交历史记录

我常用下面命令来只显示三条记录:

1
git log -3

可以使用git log --oneline来以简洁的单行格式显示提交记录

1
git log --oneline

git pull

git pull命令用于从远程存储库(通常是在GitHub或类似服务上)获取并整合(合并)最新的更改到你的本地存储库中。当在本地仓库中执行git pull时,它会自动执行git fetch来获取远程存储库中的最新更改,然后尝试将这些更改合并到你的当前分支中。

1
git pull

如果本地有未提交的更改,git pull可能会导致冲突。在这种情况下,需要解决冲突并手动完成合并。

git submodule

子仓注册:

1
git submodule init

子仓更新:

1
2
git submodule update
git submodule update foreach 'git checkout master && git pull'

git fetch

git fetch:这个命令会将远程仓库的最新更新下载到本地仓库,但不会自动合并或修改你的工作目录。它会将远程分支的更新保存到本地,可以随后使用 git mergegit rebase 将这些更新合并到你的本地分支。

1
git fetch

git fetch --all:这个命令会获取所有远程仓库的最新更新,包括所有远程分支的更新。这样做可以确保本地仓库包含了所有远程仓库的最新状态。

1
git fetch --all

有时我会用以下命令来解决疑难杂症:

1
2
3
git fetch --all
git reset --hard origin/当前分支
git pull

git remote

Fork的私仓同步官方仓:

1
2
3
4
5
git remote add upstream 目标地址

git fetch upstream

git merge upstream/master

注:1. 比如目标地址为 https://gitee.com/openharmony/arkui_ace_engine.git

​ 2. upstream为名字,可以更改

1
git remote -v

git reset

1
git reset --hard [commit号]   // 回退到commit号对应的版本
1
git reset [commit号]   // 带着当前修改回退到commit号对应的版本

git rebase

1
git rebase <要合并的分支>

举例:

构造两个分支master和feature,其中feature是在提交点B处从master上拉出的分支

master上有一个新提交M,feature上有两个新提交C和D

如图:

参考:git rebase详解(图解+最简单示例,一次就懂)-CSDN博客