关于git的学习先推荐一个网站
git学习操作网站
网站是用js做的,很有意思。
git和github
git和github的安装和使用我就不说了,百度什么的都可学到
git 初始化
这里盗图一张
git init//git初始化
git remote add origin https://github.com/XXX/XXXXX.git
//添加远程仓库的地址
我使用的是visual studio内置的git,
在项目中添加到源代码管理后,然后同步
选择Sync同步push后一般会报两个错误
一个是
rejected Updates were rejected because the remote contains work that you do not have locally
意思是更新被拒绝,远程仓库有的文件你本地没有
那就git pull吧
这里解释一下git pull
git pull origin 分支名称
git pull
虽是一条语句 作用是将拉取的分支与当前分支合并
却是 git fetch 和 git merge两条语句
git fetch
会访问远程仓库,从中拉取所有你还没有的数据。 执行完成后,你将会拥有那个远程仓库中所有分支的引用,可以随时合并或查看
但是 并不会自动合并或修改你当前的工作。 当准备好时你必须手动将其合并入你的工作
git merge
:和并分支
注意
1.每次使用该命令前,需要保证本地工作区是没有任何修改代码的,也就是说需要将本地工作区编辑过的文件添加到暂存区(git add .
),或提交到本地仓库中(git commit
),才可以使用该命令拉取指定分支的代码合并到当前分支中
2.每次在操作完git commit
命令后,必须拉取一下master分支代码,保持本地正在开发功能逻辑的代码分支代码是最新的,避免后续在提交时冲突过多或覆盖掉其他人的代码的问题出现
虽然执行了git pull
, 但是没有关联到远端分支, 所以并没有获取远端分支的最新版
讲道理git pull
后应该同步了吧,
然后执行git push
说The current branch master has no upstream branch
意思是本地分支没有对应到远端的分支
好,我们来关联远端分支
git branch --set-upstream-to=origin/master
然后执行git push
本地分支要比远程分支落后
忘记执行git pull
了
再次报错
fatal: refusing to merge unrelated histories
意思是拉取失败, 拒绝merge 不相关的历史, 因为本地也有提交
最后使用大杀招
git pull origin master --allow-unrelated-histories
//允许不相干的历史
//或者也可以使用以下的命令
git push -u origin master -f
成功push了