git fetch:是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。
git pull :则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。
1、已有的本地库关联到已有的远程库
git init
git remote add origin git@git.qilu-dev.com:waibao_469128235/xtp_test.git # 连接远程库
git branch --set-upstream-to=origin/master master #把仓库关联起来
git pull origin master --allow-unrelated-histories #拉取两个独立的远程库和本地仓
2、删除本地库的远程关联重新关联别的******
git remote rm origin
git remote -v
git remote add origin url
3、把本地新建而远程仓库没有的 本地分支推送到远程
git push origin dev:dev
git push origin newbranch:newbranch 执行完这一步 就已经推动到远程了
git push --set-upstream origin V2.2.4+CTP:V2.2.4
git push --set-upstream origin 1202 就这一步 就可以了
//推送本地的newbranch(冒号前面的)分支到远程origin的newbranch(冒号后面的)分支(没有会自动创建)
然后执行 git push --set-upstream origin newbranch
把本地分支和远程关联起来 这样才可以push
4、把远程有本地没有的 拉取到本地
git chekcout -b 本地分支名 origin/远程分支名
5、修改本地分支的名称 重新推送到远程
git branch -m oldBranchName newBranchName
git push --delete origin oldName
重新推送
git push origin newName
git push --set-upstream origin newBranchName
6、分支在远程删除之后 在本地 git branch -a 仍然可以看到
git remote show origin
查看remote地址,远程分支,还有本地分支与之相对应关系
删除本地分支
git branch -D dev
git remote prune origin #删除远程已经删除 本地还有关联的分支
or
git fetch --prune
7、需求:同一个分支
A:进行开发
B:进行开发 B的开发需要保留
B重名名 然后重新拉取A到本地 可以吗?
8、本地同步到远程一个push,但是其他客户端也做了相应的更改
其他地方的不太好处理远程的push 有撤回push的需求,操作如下:
(1) git log 找到想要回退到的版本哈希码
(2) # 重置至指定版本的提交,达到撤销提交的目的,同时保存本地的修改内容
git reset –-soft <版本号>
# 重置至指定版本的提交,达到撤销提交的目的,会丢失本地的修改内容
git reset --hard <版本号>
(3)强制提交 结果就是 gitlab远程的comimt查看不到 回退版本之后的所有提交了
git push origin branch_name –-force