Git 系列之Git 实践
今天来一篇 git 的在实际开发过程中的操作。
拷贝
- 先到自己想要放项目的目录之下

- 然后拷贝项目,后面的
url放置自己的项目地址
当然,可能会进行密码输入之类的问题 比如 GitHub 不再支持密码验证解决方案:SSH 免密与 Token 登录配置。
这时候的链接,可能是需要SSH命令的git@github.com:hzzzzzzzq/git-application-docs.git。
1 | git clone https://github.com/hzzzzzzzq/git-application-docs.git |

现在,就是我们 clone 下来的项目。
提交和推送
先添加想要加入的文件夹
我们这里加入git文件夹,以及branchTry.md用于分支合并,和gitTry.md用于git提交等。![image]()
将添加的文件加入暂存区
1 | # 单个文件添加 |
- 然后使用
git commit提交git commit是将文件提交到本地仓库,用来记录本次修改的内容
1 | git commit -m "feat: 添加文件" |

其中包含了修改的文件内容。
补充:提交信息的规范
feat: 新功能
fix: 修补 bug
docs: 文档修改
style: 格式修改
refactor: 重构
merge: 合并
- 提交本地仓库代码到远端仓库
1 | git push |

git push 提交远端仓库的结果。
分支管理
- 创建一个新分支,并切换入该分支
feat-branch是分支名,这里基本是按照功能来命名。
1 | git checkout -b feat-branch |
- 切换分支
1 | # main 就是你要切换的分支名 |
- 删除分支
1 | # feat-branch 就是想要删除的分支名称 |
- 将分支提交到远端分支
1 | git push git@github.com:hzzzzzzzq/git-application-docs.git feat-branch |

这时候,在远端仓库中,就可以看到该分支了。

拉取
一个项目经常是多个人一起进行开发的,当别人提交代码时,我们就需要拉取他人的代码了。这时候 git pull 的作用就来了。
1 | git pull |
为了演示 git pull,我在这边新建一个 git 本地仓库,用来演示共同开发时的拉取以及冲突。
clone 一个新项目,我们然后对文件进行部分修改,然后进行提交。


接下来,我们重新切回到我们之前的文件,然后进行 git pull。
1 | # 切换原项目 |

合并与冲突
在 main 分支下,修改标题内容。

然后提交。

切换到 feat-branch,并修改同文件的标题,并提交。
1 | # 切分支 |

- 合并
我们切回 main 分支,然后将 feat-branch 合并到 main 分支。
1 | # 切分支 |
如果合并没有问题,就可以直接进行 push 操作。
但是,由于我们在两个分支,同时对同一个文件的同一个地方进行了修改,于是,就产生了以下问题,merge 失败,有冲突。

- 冲突
我们需要打开文件夹,我们发现一些奇奇怪怪的符号,这些就是冲突的标识,我们需要对冲突进行处理。
将文件进行修改,调整到你希望的样子。并对全局进行检查是否,还有其他冲突文件。
我们看到有 <<<<<< 以及 ====== 因为在 .md 文件中,我打开了源形式,否则可能看不到 ===== 或者 < 被转化。

现在我演示一下,我想保留 feat-branch 的内容,则删除 main 分支的内容。
将 main 分支内容删除之后的样子。
- 提交推送
1 | # 添加冲突文件到暂存区 |

这时,我们在远端仓库 main 分支下,看到的就是我们 feat-branch 分支中的内容了。
提交记录
- git log 查看提交记录
1 | git log |

- 只看某个人的提交记录
这里结果是一样的,因为都是我自己完成的。
1 | git log --author=hzzzzzzzq |
