git指令
因为现在做项目需要连接远程仓库与同学配合,列一下常用的指令
初始化本地仓库
git init
连接远程仓库
git remote add origin git@github.com:PeachMooch/SBQY-Digital-Museum-.git
origin是默认的远程仓库名称
git@github.com:PeachMooch/SBQY-Digital-Museum-.git是仓库的SSH地址
拉取远程仓库的所有分支信息到本地
git fetch origin
检查当前分支
git branch
切换到已存在的分支
git checkout <分支名>
创建并切换到新分支
git checkout -b <新分支名>
推送新分支到远程仓库
git push -u origin 0826
-u会设置上游分支,方便后续推送
0826是我设置的新分支
添加新的远程仓库
git remote add new-repo <新仓库的URL>
提交所有更改(忽略依赖)
git add .
git commit -m "Initial commit for 0826 branch"
推送到新仓库
git push -u new-repo 0826
克隆指定分支的文件
git clone -b 0825 --single-branch git@github.com:PeachMooch/SBQY-Digital-Museum-.git SBQY-Digital-Museum-0825
git@github.com:PeachMooch/SBQY-Digital-Museum-.git是仓库的SSH地址
SBQY-Digital-Museum-是仓库名
0825是分支名
合并修改到本地
1.确认远程和分支
git remote -v
git branch -a
切换本地仓库所连接的远程仓库
删除现有的远程仓库
git remote rm origin
添加新的远程仓库
git remote add origin URL
2.拉取远程<分支名>分支并创建本地追踪分支
git fetch origin http
git checkout -b http origin/http
http 为分支名,是我需要合并的分支
3.基于我的工作分支<wyh>新建集成分支再合并
(1)从远段获取wyh的最新提交
git checkout wyh
git pull (=git fetch+git merge)
(2)创建集成分支
git checkout -b http-merge
(3)解决“无共同祖先”并偏向http的合并策略
git merge http --allow-unrelated-histories -X theirs
(4)合并后检查状态(确认无未解决冲突)
git status
(5)推送新分支
git push -u origin http-merge
一些注意事项
当时的情况是这样的
主项目文件夹是SBQY-Digital-Museum-0825
子项目文件夹是backend和frontend
我当时先在frontend文件夹下初始化了一个git仓库,之后退回到主文件夹,再初始化了一个git仓库,之后执行git add .就报错了,得把frontend初始化的git仓库删除:
Remove-Item -Recurse -Force frontend\.git
一定要注意区分本地仓库和远程仓库,不要把分支搞混了
git fetch origin
执行git push -u origin main的时候出现"error: src refspec main does not match any" 错误
主要是因为本地仓库中没有名为main的分支,或者该分支上没有任何提交记录
解决方法:1.先查看本地分支名称;2.如果显示的是master或者其他名称,推送时使用对应的分支名