常用分支命令
git branch -a //查看远程分支,远程分支会用红色表示出来
git checkout -b c1 //创建新分支并切换到新分支
git reset –hard HEAD^ //回退到上一个版本
git reset –hard HEAD~2 //回退到上2个版本
git reset --hard 版本号 //回退到指定版本,可以先git log查看版本号
问题解决
git本地分支与远程分支建立连接
我想让我的本地分支c1和远程分支main建立连接
git branch --set-upstream-to=origin/main c1
这样就可以直接使用git pull拉去当前分支对应远程分支的内容了
切换到指定远程分支
先查看远程仓库的所有分支,然后执行git checkout 命令切换分支。命令后跟分支的名字。如果命令后是远程分支,则会创建一个分离头分支。在此分支上可以查看代码、更改并提交,也可以放弃在此过程中所做的任何提交通过切换回分支,在不影响任何分支的情况下进行状态设置。
git branch -a
//$ git branch -a
//* dev
// remotes/origin/HEAD -> origin/dev
// remotes/origin/dev
// remotes/origin/master
git checkout 分支 //切换分支
//$ git branch
//* (HEAD detached at origin/master)
//dev
git checkout -b dev origin/dev ,作用是checkout远程的dev 分支,在本地起名为dev 分支,并切换到本地的dev 分支
git checkout -b master origin/master,作用是checkout远程的master分支,在本地起名为master分支,并切换到本地的master分支
查看本地分支及追踪的分支
git branch -vv //显示本地所有分支
将本地分支推送到远程分支
git push <远程主机名> <本地分支名>:<远程分支名>
git push -u origin c1:main
这里我没推上去

然后选择合并分支再进行推送,合并分支要注意分支冲突。
分支代码合并到主分支
首先切换到自己的分支(比如分支叫:dev)
git checkout dev
把本地分支拉取下来
git pull 或者 git pull origin dev
切换到主分支master
git checkout master
合并代码到主分支上
git merge dev
检查一下是否合并成功,是否有冲突
git status
检查没问题,推送代码
git push
或
git push origin master
主分支代码拉取到自己分支上
首先检查自己现在在哪个分支,如果在dev开发分支,看是否有最新代码没有提交,如果有,先 git add . git commit -m 缓存一下代码,不要push,然后切换到主分支。
git checkout master
把主分支代码拉取下来
git pull
或
git pull origin master
切换到开发分支dev
git checkout dev
合并主分支的代码到开发分支上
git merge master
检查一下是否合并成功,是否有冲突
git status
检查没问题,推送代码
git push
或
git push origin dev
vscode中修改/重置git远程仓库地址
1.修改地址
1.查看当前remotes
git remote -v
2.修改remotes
git remote set-url origin https://github.com/STATICHIT/OSS_Backend.git
2.重置地址
1.删除当前地址
git remote rm origin
2.新增地址
git remote add origin https://github.com/STATICHIT/OSS_Backend.git
3.直接修改git config文件(没试过)
如果你的项目有加入版本控制,那可以到项目根目录下,查看隐藏文件夹, 发现.git文件夹,找到其中的config文件,就可以修改其中的git remote origin地址了
git提示错误:On branch mainYour branch and 'origin/main' have diverged,and have 6 and 1 different commits each, respectively. (use "git pull" to merge the remote branch into yours)
经过两次项目消失以后得出的结果,我
git pull 提示错误: fatal: refusing to merge unrelated histories
在拉取远程仓库的项目时提示错误:

这个错误表示我有一个包含提交的新的git存储库,我想从现有的远程仓库中拉取,合并变得不兼容。因为分支和远程仓库的离是记录不同,当我试图合并两个完全不相关的分支的时候,git发现了这种情况但是无法处理。
也就是我要上传到的远程仓库的分支上的代码没有实现clone到本地,所以变得不兼容。
解决:
在“git pull”和“git push”的命令中添加“--allow-unrelated-histories”让git允许提交不关联的代码。
git pull origin master --allow-unrelated-histories
git push origin master --allow-unrelated-histories
其次,出现这种错误还有可能是如下问题:
有一个包含一些提交的新 Git 存储库。然后,您尝试从现有的远程仓库中提取。合并变得不兼容,因为分支和远程拉取的历史不同。当你试图合并两个完全不相关的分支时,Git 看到了这种情况,它不知道该怎么做。
2. 目录有问题.git。它可能在某些时候被意外删除或损坏。如果您克隆或清理了项目,则可能会发生这种情况。此处发生错误是因为 Git 没有有关本地项目历史的必要信息。
3. 当您尝试从远程仓库推送或拉取数据时,分支位于不同的HEAD位置,并且由于缺乏共性而无法匹配。
如何删除git远程仓库里面上传的多余文件
这里我只需要保留一个oss-backstage文件夹,但是上传了很多文件上去。

这里我应该把其他文件删掉
删除步骤:
查看远程仓库有哪些文件
git rm -r -n --cached xxx

删除远程仓库的指定文件
git rm -r --cached xxx

此时远程仓库文件没有被删除,只是删除了暂存区的文件,需要继续执行以下步骤。
本地仓库与远程仓库同步
提交到本地
git commit -m "删除部分文件"


推送到本地
git push origin main
此时远程仓库已同步删除,删除文件显示在更改区域。

