这个也是小编跟着别的大佬学习的一些笔记,有不妥的地方请大家指正。
1、git命令总结
首先介绍一下git的本地数据管理区域:
工作区:就是你电脑上的文件夹
暂存区:一个临时的存储区域,用于保存即将提交到本地仓库的文件
本地仓库:通过git init 创建的仓库,这个仓库位于你的电脑上,所以叫本地仓库。与之相对的是远程仓库,就是GitHub/gitLab这些。
git init//在Ubuntu中找到一个路径,然后输入此句就会创建一个仓库
git branch //查看当前仓库有哪些分支
git branch branch-name//创建一个名为branch-name的新分支
git checkout branch-name//从当前分支切换到branch-name分支
git checkout -b branch-name//创建 一个名为branch-name分支的分支,并切换到branch-name分支
git switch branch-name//切换分支,在git 2.23版本才出现的,因为使用git checkout可会引发一些问题。
/* 例如对一个分支进行了修改,然后使用git checkout返回修改前的版本,如果此时修改的文件名和分支名相同,则会造成冲突,所以推荐使用git switch */
git merge branch-name//将branch-name合并到当前分支
git add .//保存修改到暂存区
git commit -m "解决冲突后的提交" //将修改提交到本地服务器,先执git add .再执行这句
git reset --soft//回退到某一个版本,保留工作区的内容,保留暂存区的内容
git reset --hard//回退到某一个版本,不保留工作区的内容,不保留暂存区的内容
git reset --mixed//回退到某一个版本,保留工作区的内容,不保留暂存区的内容,mixed为默认参数
git branch -d branch-name//已经将多个分支合并了,然后删除一个分支
git branch -D branch-name//合并分支前删除某个分支
git diff your-filename //查看your-filename文件在工作区,暂存区,和版本库之间的差异。或者文件在两个特定版本之间的差异
git rm file-name//删除名字为file-name的文件
git status//查看仓库的状态
git ls-files//查看暂存区中的内容
2、git 的冲突解决
使用 git merge branch-name 的时候,如果没有冲突,那么在merge完了之后git会帮你自动进行一次commit。但有时候会有冲突,此时git会报错,并且不会进行commit操作。此时的解决办法就是手动修改发生冲突的文件。使用vi/vim命令对冲突的文件的冲突字段进行修改,修改完成后再进行:
git add .
git commit -m "解决冲突后的提交"
//或者使用下面其中一个替换上面的2句代码
git commit -a -m "解决冲突后的提交"
//或者
git commit -am "解决冲突后的提交"
提交之后若无冲突,则merge完成
有的时候,当一个开发人员刚刚从远程仓库pull了代码,另一个开发人员马上又push了新的修改到远程仓库,那么在第一个开发人员再次push的时候就会发现git报错,发生冲突了。这是当前版本和远程仓库的版本不匹配。要想解决这个问题,使用下面的代码就可以了:
git pull
git merge "刚刚 pull 的分支名"
git push
这样就不会报错了