Open hzzzzzzzq opened 2 years ago
今天来一篇 git 的在实际开发过程中的操作。
git
url
SSH
git@github.com:hzzzzzzzq/git-application-docs.git
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
现在,就是我们 clone 下来的项目。
clone
先添加想要加入的文件夹 我们这里加入 git 文件夹,以及 branchTry.md 用于分支合并,和 gitTry.md 用于 git 提交等。
branchTry.md
gitTry.md
将添加的文件加入暂存区
# 单个文件添加 git add git/gitTry.md # 全部一起添加 git add . # 如果该文件被忽略,则需要添加 -f 强制添加 git add -f git/branchTry.md
git commit
git commit -m "feat: 添加文件"
其中包含了修改的文件内容。
补充:提交信息的规范
feat: 新功能 fix: 修补 bug docs: 文档修改 style: 格式修改 refactor: 重构 merge: 合并
git push
git push 提交远端仓库的结果。
feat-branch
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
这时候,在远端仓库中,就可以看到该分支了。
一个项目经常是多个人一起进行开发的,当别人提交代码时,我们就需要拉取他人的代码了。这时候 git pull 的作用就来了。
git pull
为了演示 git pull,我在这边新建一个 git 本地仓库,用来演示共同开发时的拉取以及冲突。
clone 一个新项目,我们然后对文件进行部分修改,然后进行提交。
接下来,我们重新切回到我们之前的文件,然后进行 git pull。
# 切换原项目 cd ../git-application-docs # 切到 main 分支 git checkout main # 拉取远端代码 git pull
在 main 分支下,修改标题内容。
main
然后提交。
切换到 feat-branch,并修改同文件的标题,并提交。
# 切分支 git checkout feat-branch # 添加到暂存区 git add . # 提交 git commit -m "feat: change branch title" # 推送到远端 git push
我们切回 main 分支,然后将 feat-branch 合并到 main 分支。
# 切分支 git checkout main # 合并 git merge feat-branch # 没有冲突的情况,直接推送即可 git push
如果合并没有问题,就可以直接进行 push 操作。 但是,由于我们在两个分支,同时对同一个文件的同一个地方进行了修改,于是,就产生了以下问题,merge 失败,有冲突。
push
merge
我们需要打开文件夹,我们发现一些奇奇怪怪的符号,这些就是冲突的标识,我们需要对冲突进行处理。 将文件进行修改,调整到你希望的样子。并对全局进行检查是否,还有其他冲突文件。
我们看到有 <<<<<< 以及 ====== 因为在 .md 文件中,我打开了源形式,否则可能看不到 ===== 或者 < 被转化。
<<<<<<
======
.md
=====
<
现在我演示一下,我想保留 feat-branch 的内容,则删除 main 分支的内容。 将 main 分支内容删除之后的样子。
# 添加冲突文件到暂存区 git add . # 提交到本地 git commit -m "merge: 合并冲突" # 推送到远端 git push
这时,我们在远端仓库 main 分支下,看到的就是我们 feat-branch 分支中的内容了。
git log
git log --author=hzzzzzzzq
git 实践
今天来一篇
git
的在实际开发过程中的操作。拷贝
url
放置自己的项目地址 当然,可能会进行密码输入之类的问题 比如 GitHub 不再支持密码验证解决方案:SSH 免密与 Token 登录配置。 这时候的链接,可能是需要SSH
命令的git@github.com:hzzzzzzzq/git-application-docs.git
。现在,就是我们
clone
下来的项目。提交和推送
先添加想要加入的文件夹 我们这里加入![image](https://user-images.githubusercontent.com/66205484/145945306-950914ca-082a-4277-aa98-59ed75dfd584.png)
git
文件夹,以及branchTry.md
用于分支合并,和gitTry.md
用于git
提交等。将添加的文件加入暂存区
git commit
提交git commit
是将文件提交到本地仓库,用来记录本次修改的内容其中包含了修改的文件内容。
补充:提交信息的规范
git push
提交远端仓库的结果。分支管理
feat-branch
是分支名,这里基本是按照功能来命名。这时候,在远端仓库中,就可以看到该分支了。
拉取
一个项目经常是多个人一起进行开发的,当别人提交代码时,我们就需要拉取他人的代码了。这时候
git pull
的作用就来了。为了演示
git pull
,我在这边新建一个git
本地仓库,用来演示共同开发时的拉取以及冲突。clone
一个新项目,我们然后对文件进行部分修改,然后进行提交。接下来,我们重新切回到我们之前的文件,然后进行
git pull
。合并与冲突
在
main
分支下,修改标题内容。然后提交。
切换到
feat-branch
,并修改同文件的标题,并提交。我们切回
main
分支,然后将feat-branch
合并到main
分支。如果合并没有问题,就可以直接进行
push
操作。 但是,由于我们在两个分支,同时对同一个文件的同一个地方进行了修改,于是,就产生了以下问题,merge
失败,有冲突。我们需要打开文件夹,我们发现一些奇奇怪怪的符号,这些就是冲突的标识,我们需要对冲突进行处理。 将文件进行修改,调整到你希望的样子。并对全局进行检查是否,还有其他冲突文件。
我们看到有
<<<<<<
以及======
因为在.md
文件中,我打开了源形式,否则可能看不到=====
或者<
被转化。现在我演示一下,我想保留![image](https://user-images.githubusercontent.com/66205484/145954865-71a2a7a6-a0d4-4ddf-b1aa-1bc3fa2e5225.png)
feat-branch
的内容,则删除main
分支的内容。 将main
分支内容删除之后的样子。这时,我们在远端仓库
main
分支下,看到的就是我们feat-branch
分支中的内容了。提交记录