git的三棵树
-
工作区:我们编写代码的文件环境。
-
暂存区:临时存储区域。
-
版本库:代码仓库,即分支。文件最终保存的区域。
分支创建和切换
假设我是张三,拿到项目后需要创建分支page;然后切换到分支page(创建分支时会把当前分支下的内容都带入到新分支中)
git branch page //创建分支page
git checkout page //切换到分支page
简写:git checkout -b page
创建完代码以后要对内容进行提交:
git add . //将代码添加到暂存区
git commit -m "张三修改了分支文件" //把暂存区中所有文件提交到代码库
git push origin page:page //把本地分支 直接推送到远程分支 (远程仓库会多一个自己的分支)
拉取远程分支 在本地开发:
git clone -b page 仓库地址
修改本地文件后
git add .
git commit -m "123"
git push //提交到分支文件
git pull origin page //拉取最新代码
如要将分支page合并到主分支:
git checkout master //先切换到主分支
git merge page //git merge命令用于合并指定分支到当前分支
解决冲突
创建 dev 分支
git checkout -b dev
修改 index/index.html 的内容
在 dev分支中,提交 index/index.html
git add index/index.html
git commit -m 'dev-index'
切换到 master 分支
git add index/index.html
git commit -m 'dev-index'
修改 index/index.html 的内容
在 master 分支中,提交 index/index.html
git add index/index.html
git commit -m 'master-index'
现在,master 分支和 buycar 分支,分别有新的提交。
git checkout dev //看看index.html的内容
git checkout index //看看index.html的内容
这种情况下,Git无法执行快速合并。
git merge dev // 将 dev 合并到 master 分支中
命令行提示冲突了,告诉我们需要手动解决冲突,然后提交。
也可以使用 status 查看哪些文件有冲突。
git status
也可以直接查看 index/index.html 的内容
<body>
123
</body>
需要我们手动对 index/index.html 文件进行更改后,重新提交
git add index/index.html
git commit -m '手动更新'
最后,删除 dev 分支