git----常见问题
1、当我们写完代码进行push的时候,如果远端文件被修改,就会报错,接下来我们就需要pull命令;
2、如果pull出现,表示远程分支中的文件已经有人修改了,且和你的写的代码发生了冲突
冲突的内容
解决方式1(需要和同事商量):
如果我们确定远程的分支正好是我们需要的,而本地的分支上的修改比较陈旧或者不正确,那么可以直接丢弃本地分支内容,使用远程文件内容。
$: git reset --hard origin/master 测试可行
或者$:git reset --hard ORIG_HEAD
解释:
git-reset - Reset current HEAD to the specified state
--hard
Resets the index and working tree. Any changes to tracked files
in the working tree since <commit> are discarded.
解决方式2:
我们不能丢弃本地修改,因为其中的某些内容的确是我们需要的,此时需要对unmerged的文件进行手动修改,删掉其中冲突的部分,然后运行如下命令,进行代码的提交;
$:git add filename
$:git commit -m "message"
$:git pull origin master
$:git push origin master
如果我们觉得合并以后的文件内容比价混乱,想要废弃这次合并,回到合并之前的状态(自己以前写的代码状态),那么可以运行如下命令:
$:git reset --hard HEAD
合并master
比如我们一直在远程的一个other分支上进行操作,如果需要和远程的master分支进行合并,我们肯定需要和自己的本地master分支合并
1、git pull origin other ,拉取远程other分支合并到本地other分支:检查远程other分支的最新的情况(有需要进行修改,一般分支是自己的,别人不会修改)
2、git checkout master ,切换本地分支
3、git pull origin master,拉取远程master分支合并到本地master分支:检查远程的master分支的最新情况(非常有必要)
4、git merge other:合并分支
5、git push origin master:推送到远程master分支
关于merge的问题:
如果合并的文件名不一样就好说,不会发生冲突,如果合并的分支文件名冲突就需要自己修改;(和pull的原理一样)
使用IDEA来解决冲突
记住先commit代码后,在进行pull操作
1、当进行pull命令或者merger命令发送冲突了(IDEA会直接报错)
2、
git和远程仓库连接
我们从git上copy代码后(zip包),用IDEA建立好项目后,我们需要做的事情。
1、本地创建仓库
git init
2、将项目添加到git中,并提交
git add . git commit -m “message”
3、关联仓库地址
git remote add origin 远程仓库地址
4、关联分支
4.1我们可以先查看自己的分支
#查看远程分支,此时应该还看不到分支,因为还没关联 git branch -r #查看本地分支 git branch
4.2关联分支
#origin/远程分支 本地分支 git branch --set-upstream-to=origin/master master
//强制本地覆盖远程仓库 git push -u origin master -f
return
如果报错
hint: If you are planning on basing your work on an upstream hint: branch that already exists at the remote, you may need to hint: run "git fetch" to retrieve it. hint: hint: If you are planning to push out a new local branch that hint: will track its remote counterpart, you may want to use hint: "git push -u" to set the upstream config as you push. #解释 如果远程有master仓库,执行git fetch 如果没有的话,执行 git push -u,但是我感觉,如果远程仓库没有分支,你不就可以直接push,然后指定分支了吗,不需要再pull。所以这个命令用不到
5、执行
git pull
如果报错
refusing to merge unrelated histories
执行
git pull origin master --allow-unrelated-histories
此时在修改代码,就可以直接push了,不需要在指定源了
第一次远程仓库是空的,我们提交代码
git init
添加.ingore文件
git add .
git commit -m
git remote add origin url
git branch -M master
git push -u origin master