hzzzzzzzq / Blog

这是我记录博客的地方,希望能多写一些技术博客,JS、ES、React、Vue等
14 stars 0 forks source link

Git 系列 - 2. git 实战 #16

Open hzzzzzzzq opened 2 years ago

hzzzzzzzq commented 2 years ago

git 实践

今天来一篇 git 的在实际开发过程中的操作。

拷贝

image

git clone https://github.com/hzzzzzzzq/git-application-docs.git
# 或者
git clone git@github.com:hzzzzzzzq/git-application-docs.git

# 拷贝之后我们 cd 到目录文件
cd git-application-docs

image

现在,就是我们 clone 下来的项目。

提交和推送

# 单个文件添加
git add git/gitTry.md

# 全部一起添加
git add .

# 如果该文件被忽略,则需要添加 -f 强制添加
git add -f git/branchTry.md
git commit -m "feat: 添加文件"

image

其中包含了修改的文件内容。

补充:提交信息的规范

feat: 新功能 fix: 修补 bug docs: 文档修改 style: 格式修改 refactor: 重构 merge: 合并

git push

image

git push 提交远端仓库的结果。

分支管理

git checkout -b feat-branch
# main 就是你要切换的分支名
# 切回主分支
git checkout main
# feat-branch 就是想要删除的分支名称
# 因为该分支还需要使用,就不做操作了。
git branch -d feat-branch
git push git@github.com:hzzzzzzzq/git-application-docs.git feat-branch

image

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

image

拉取

一个项目经常是多个人一起进行开发的,当别人提交代码时,我们就需要拉取他人的代码了。这时候 git pull 的作用就来了。

git pull

为了演示 git pull,我在这边新建一个 git 本地仓库,用来演示共同开发时的拉取以及冲突。

clone 一个新项目,我们然后对文件进行部分修改,然后进行提交。

image

image

接下来,我们重新切回到我们之前的文件,然后进行 git pull

# 切换原项目
cd ../git-application-docs

# 切到 main 分支
git checkout main

# 拉取远端代码
git pull

image

合并与冲突

main 分支下,修改标题内容。

image

然后提交。

image

切换到 feat-branch,并修改同文件的标题,并提交。

# 切分支
git checkout feat-branch
# 添加到暂存区
git add .
# 提交
git commit -m "feat: change branch title"
# 推送到远端
git push

image

我们切回 main 分支,然后将 feat-branch 合并到 main 分支。

# 切分支
git checkout main
# 合并
git merge feat-branch
# 没有冲突的情况,直接推送即可
git push

如果合并没有问题,就可以直接进行 push 操作。 但是,由于我们在两个分支,同时对同一个文件的同一个地方进行了修改,于是,就产生了以下问题,merge 失败,有冲突。

image

我们需要打开文件夹,我们发现一些奇奇怪怪的符号,这些就是冲突的标识,我们需要对冲突进行处理。 将文件进行修改,调整到你希望的样子。并对全局进行检查是否,还有其他冲突文件。

我们看到有 <<<<<< 以及 ====== 因为在 .md 文件中,我打开了源形式,否则可能看不到 ===== 或者 < 被转化。

image

现在我演示一下,我想保留 feat-branch 的内容,则删除 main 分支的内容。 将 main 分支内容删除之后的样子。 image

# 添加冲突文件到暂存区
git add .
# 提交到本地
git commit -m "merge: 合并冲突"
# 推送到远端
git push

image

这时,我们在远端仓库 main 分支下,看到的就是我们 feat-branch 分支中的内容了。

提交记录

git log

image

git log --author=hzzzzzzzq