补充 rebase 交互指令,修正格式.

Signed-off-by: rick.chan <chenyang@autoai.com>
This commit is contained in:
rick.chan 2021-06-03 10:12:57 +08:00
parent dc37112389
commit 8b51980008
1 changed files with 39 additions and 29 deletions

View File

@ -4,14 +4,14 @@
### 1.1.Git 初始配置
在使用 Git 前需要配置好用户名和电子邮件信息Git 需要使用这些配置信息用于提交代码。在 Git 命令行下,可以使用如下命令设置用户名和电子邮件信息:
在使用 Git 前需要配置好用户名和电子邮件信息Git 需要使用这些配置信息用于提交代码。在 Git 命令行下,可以使用如下命令设置用户名和电子邮件信息:
```bash
git config --global user.name "Your name"
git config --global user.email "Your email"
```
查看当前配置的用户名和电子邮件信息命令如下:
查看当前配置的用户名和电子邮件信息命令如下:
```bash
git config --global user.name
@ -32,44 +32,44 @@ git config --global http.postBuffer 524288000
### 1.2.Git 与 SSH
如果想访问远程 Git 服务器,则最好通过 SSH 方式。这需要先生成 RSA 密钥,然后将公钥部署到远程服务器上即可。生成 RSA 密钥可使用 OpenSSH命令如下Windows 下该命令位于 /\<git 安装目录\>/usr/bin/ 下,可使用 Git Bash 直接访问):
如果想访问远程 Git 服务器,则最好通过 SSH 方式。这需要先生成 RSA 密钥,然后将公钥部署到远程服务器上即可。生成 RSA 密钥可使用 OpenSSH命令如下Windows 下该命令位于 /\<git 安装目录\>/usr/bin/ 下,可使用 Git Bash 直接访问):
```bash
ssh-keygen
```
之后一路回车,生成文件为:
之后一路回车,生成文件为:
```bash
<Usr>/.ssh/id_rsa
<Usr>/.ssh/id_rsa.pub
```
其中 id_rsa 为私钥id_rsa.pub 为公钥,将公钥中的内容拷贝到远程服务器中对应的设置项中即可。
其中 id_rsa 为私钥id_rsa.pub 为公钥,将公钥中的内容拷贝到远程服务器中对应的设置项中即可。
TortoiseGit 需要额外修改 Settings->Network->SSH 为 C:\Windows\System32\OpenSSH\ssh.exe 才可以通过 OpenSSH 密钥来访问服务器。否则默认使用 PuTTY 格式密钥。
TortoiseGit 需要额外修改 Settings->Network->SSH 为 C:\Windows\System32\OpenSSH\ssh.exe 才可以通过 OpenSSH 密钥来访问服务器。否则默认使用 PuTTY 格式密钥。
## 2.创建仓库
软件版本管理依赖于软件仓库的概念,一个软件仓库包容了要进行版本管理的源码和 Release 发布等内容。
软件版本管理依赖于软件仓库的概念,一个软件仓库包容了要进行版本管理的源码和 Release 发布等内容。
在要进行版本管理的目录下键入
在要进行版本管理的目录下键入
```bash
git init
```
命令,可完成软件版本仓库的创建操作,在创建完软件仓库后,该目录下会生成一个名为“.git”的隐藏文件夹该文件夹下保存了软件的历史和分支等版本信息通常不需要直接操作该目录。
命令,可完成软件版本仓库的创建操作,在创建完软件仓库后,该目录下会生成一个名为“.git”的隐藏文件夹该文件夹下保存了软件的历史和分支等版本信息通常不需要直接操作该目录。
## 3.添加跟踪文件
版本仓库所在文件夹下的文件并不是全部都会被 git 跟踪和管理。如果需要将该文件夹下将某个文件纳入到版本管理中,则需要通过 add 命令添加到 git 仓库中进行跟踪:
版本仓库所在文件夹下的文件并不是全部都会被 git 跟踪和管理。如果需要将该文件夹下将某个文件纳入到版本管理中,则需要通过 add 命令添加到 git 仓库中进行跟踪:
```bash
git add <file name>
```
例如:
例如:
```bash
git add main.c
@ -77,13 +77,13 @@ git add main.c
## 4.取消跟踪文件
如果对某个文件取消跟踪,但还需要保留本地文件,则使用如下命令:
如果对某个文件取消跟踪,但还需要保留本地文件,则使用如下命令:
```bash
git rm --cached <file name>
```
如果取消对某个文件的版本管理,并且要删除该文件,则使用如下命令:
如果取消对某个文件的版本管理,并且要删除该文件,则使用如下命令:
```bash
git rm --f <file name>
@ -91,36 +91,36 @@ git rm --f <file name>
## 5.Clone 仓库
更多的时候,不需要手动创建 git 仓库。git 仓库很可能已经存在于远端服务器或别人的计算机中,这时候我们只需要将其 clone 到本地即可:
更多的时候,不需要手动创建 git 仓库。git 仓库很可能已经存在于远端服务器或别人的计算机中,这时候我们只需要将其 clone 到本地即可:
```bash
git clone <repository url>
```
例如:
例如:
```bash
git clone https://192.168.1.8/path/repo.git
```
git 支持 http、https、ssh 格式的 URL 访问。
git 支持 http、https、ssh 格式的 URL 访问。
## 6.提交变更
在修改代码或相关文件后,需要先将变更缓存到本地,这一步被称作 commit。带签名的提交命令如下
在修改代码或相关文件后,需要先将变更缓存到本地,这一步被称作 commit。带签名的提交命令如下
```bash
git add .
git commit -s -m <message>
```
如果想对上次提交进行修改,或将本次提交与上次提交合并,可为 commit 增加 amend 参数,如下:
如果想对上次提交进行修改,或将本次提交与上次提交合并,可为 commit 增加 amend 参数,如下:
```bash
git commit --amend
```
之后可通过交互界面进行编辑和修改。
之后可通过交互界面进行编辑和修改。
## 7.时光穿梭
@ -149,7 +149,7 @@ git revert <commit id>
## 8.分支管理
通过以下命令创建新的本地分支:
通过以下命令创建新的本地分支:
```bash
git branch <branch>
@ -174,7 +174,7 @@ git checkout <branch>
git push <repository> <local branch>:<remote branch>
```
如,推送本地的 new 分支与 \<repository\> 主机的 master 分支合并:
如,推送本地的 new 分支与 \<repository\> 主机的 master 分支合并:
```bash
git push <repository> new:master
@ -206,7 +206,7 @@ git branch -d <branch>
git push <repository> --delete <branch>
```
将某个分支与当前分支合并的命令为:
将某个分支与当前分支合并的命令为:
```bash
# merge 谋 branch 到当前分支.
@ -265,19 +265,19 @@ git diff <commit id 0> <commit id 1> [file/folder]
## 11.Tag 管理
可以通过:
可以通过:
```bash
git tag
```
命令列出当前仓库中的所有标签,创建一个带附注的的标签则可以使用以下命令实现:
命令列出当前仓库中的所有标签,创建一个带附注的的标签则可以使用以下命令实现:
```bash
git tag -a <tag name> -m <message>
```
还可以使用:
还可以使用:
```bash
git tag <tag name>
@ -323,13 +323,13 @@ git remote prune <repository>
## 12.Rebase
由于合并分支,或从远程仓库中更新代码产生了额外的 merge 节点,此时可通过 rebase 命令消除这些额外的 merge 节点,使 git 历史的线性更好:
由于合并分支,或从远程仓库中更新代码产生了额外的 merge 节点,此时可通过 rebase 命令消除这些额外的 merge 节点,使 git 历史的线性更好:
```bash
git rebase [-i] [upstream]
```
通过增加 -i 参数可进入交互模式。使用 Rebase 还可以将多次提交进行合并,或设置起止点。
通过增加 -i 参数可进入交互模式。使用 Rebase 还可以将多次提交进行合并,或设置起止点。
```bash
git rebase [-i] <start commit id> <end commit id>
@ -339,7 +339,17 @@ git rebase [-i] HEAD~<n>
git rebase [-i] <to commit id>
```
使用 -i 参数进入交互模式后,可通过设置 pick/squash 检出/压缩提交。如果发生了冲突,可以在解决冲突并 add 后,通过:
使用 -i 参数进入交互模式后,可以:
* pick保留该commit缩写:p
* reword保留该commit但我需要修改该commit的注释缩写:r
* edit保留该commit, 但我要停下来修改该提交(不仅仅修改注释)(缩写:e
* squash将该commit和前一个commit合并缩写:s
* fixup将该commit和前一个commit合并但我不要保留该提交的注释信息缩写:f
* exec执行shell命令缩写:x
* drop我要丢弃该commit缩写:d
如果发生了冲突,可以在解决冲突并 add 后,通过:
```bash
git rebase --continue
@ -354,7 +364,7 @@ git rebase <from branch>
git rebase <from branch> <to branch>
```
命令继续 rebase。
命令继续 rebase。
## 13.同步 fork 的仓库