Git常用操作总结,经常遇到但是记不住

今天分享一些我平时在使用git时经常会遇到的几个问题,由于命令一直记不住,每次都得去搜索贼麻烦,所以今天想着整理一下分享出来,希望能帮助到也经常遇到这些问题的你。

Git常用操作总结,经常遇到但是记不住

Git remote 使用总结

使用场景:新建一个git仓库并与远程关联

  1. 初始化一个新的空的git仓储,并在仓储下做一些改动;

mkdir gitDir
cd gitDir/
git init
touch file
#查看当前未提交的改动 
git status 
git add file 
#将本次改动提交到本地仓库
git commit -m "新建文件file" 
  1. 在github上或者码云上新建一个仓储A;

  2. 给本地仓库添加远程仓库A并将本地的master分支跟踪到远程的分支;

# git remote add 远程仓库名名称唯一即可 远程仓库地址 
git remote add origin https://gitee.com/isevenluo/test.git 
# 查看关联的所有的远程仓库名称及地址 
git remote -v 
# 查看所有的远程仓储名称 
git remote 
# 提交本地仓库分支(master) 给远程仓库(origin)分支(master) 此处是强制提交
git push origin master -f 
# 查看当前未提交的内容,此时应该为空
git status 

使用场景:A仓库下代码提交至B仓库

这种场景也很常见,就是已有仓库A,现在需要将A仓库的代码重新提交到远程仓库B。

  1. 克隆仓储A的代码到本地并修改;

  2. 查看当前远程仓储,结果是仓储A

git remote -v
  1. 删除当前远程分支(也可以不删)

git remote remove A
  1. 新增远程仓储B

#URL为仓储B的地址
git remote add repository_B URL 
  1. 提交本次修改至本地仓储

git add . 
git commit -am "提交修改至本地仓库"
  1. 提交本地仓库到远程仓储 repository_B 的master分支

#需强制提交,因远程分支的readMe文件与本地的有冲突
git push repository_B master -f  

需学习命令

git remote
git remote -v
git remote add repositiry_name repository_url
git remote remove repositiry_name
git push repositiry_name branch -f
git status

git push 报错 Updates were rejected because the tip of your current branch is behind

问题

在push代码时,遇到这种问题 Updates were rejected because the tip of your current branch is behind (更新被拒绝,因为当前分支的落后与远程分支)

解决

有三种方案:

  1. push前先将远程repository修改pull下来,然后在推送;

git pull origin master 
git push -u origin master
  1. 使用强制push的方法:

git push -u origin master -f 

这样会使远程修改丢失,一般是不可取的,尤其是多人协作开发的时候。

  1. 若不想merge远程和本地修改,可以先创建新的分支:

git branch [name] 
#然后push 
git push -u origin [name]

衍生问题

使用上述方法在pull时可能会遇到如下问题:

  1. git pull 提示这个错误,fatal: refusing to merge unrelated histories,中文意思就是拒绝合并不相关的历史。

解决

出现这个问题的最主要原因还是在于本地仓库和远程仓库实际上是独立的两个仓库。假如我之前是直接 git clone 的方式在本地建立起远程 github 仓库的本地克隆仓库就不会有这问题了。查阅了一下资料,发现可以在 pull 命令后紧接着使用 --allow-unrelated-history 选项来解决问题(该选项可以合并两个独立启动仓库的历史)。

git pull origin master --allow-unrelated-histories

以上是将远程仓库的文件拉取到本地仓库了,紧接着将本地仓库的提交推送到远程github仓库上,使用的命令是:

git push <远程主机名> <本地分支名>:<远程分支名> 
# 常用的举例就是: 
git push origin master:master 

这样就可以提交成功了。

  1. git pull 提示这个错误 There is no tracking information for the current branch(没有当前分支的跟踪信息)

这是因为本地分支和远程分支没有建立联系,使用下面命令查看:

# 可以查看本地分支和远程分支的关联关系
git branch -vv 
# 查看远程仓库
git remote -v 

解决方法

一种方法是直接指定远程master:

git pull origin master

另外一种方法就是先指定本地master到远程的master,然后再去pull:

git branch --set-upstream-to=origin/远程分支的名字 本地分支的名字 
git pull

Git常用操作总结,经常遇到但是记不住

码字不易,觉得内容对你有帮助,希望你能花 0.1秒 点个赞哟~ 你小小的点赞永远是我持续创作的动力,谢谢你(疯狂比心)~

上一篇:【游记】2021CSP-S&2021NOIP的简单回顾


下一篇:【考试总结】test 10.27