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
提交等。将添加的文件加入暂存区
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 |