git随笔
Stru99le Lv2

gitub问题:master和main分支合并

问题:github创建仓库后默认分支是main,而本地创建的是master

  1. 先给本地master改名

    1
    2
    git branch -M main
    //-M对分支重命名
  2. 查看所有分支

    1
    2
    3
    4
    git branch -a
    * main
    remotes/origin/main
    remotes/origin/master
  3. 删除远程分支master

    1
    2
    3
      $ git push origin --delete master 
    To https://github.com/
    - [deleted] master
  4. 确认删除情况

    1
    2
    3
    $git branch -a
    * main
    remotes/origin/main
  5. 切换当前分支main,也就要保留下来的分支

    1
    2
    $ git checkout main 
    Already on 'main'
  6. 合并分支

    1
    2
    $ git merge remotes/origin/main 
    fatal: refusing to merge unrelated histories

    说明:拒绝合并,需要忽略这个限制,添加”–allow–unrelated-histories”

  7. 提交修改

    1
    git push origin main

gitignore问题

当我们创建好文件并且将其推送到github后再创建gitignore文件的话,会发现在gitignore里面添加的文件都不会生效。

**原因:**git忽略目录中,新建的文件在git中会有本地缓存,如果某些文件已经被纳入了版本管理中,就算是在.gitignore中已经声明了忽略路径也是不起作用的,.gitignore文件只是忽略没有被staged(cached)文件,对于已经被staged文件,加入ignore文件时一定要先从staged移除,才可以忽略

此时需要执行如下代码:

1
2
3
4
5
# 在idea控制台以此输入如下命令
git rm -r --cached .
git add .
git commit -m "随便写"
git push -u origin main

比较不同分支的差异

在vscode中比较两个不同分支同一个文件的差异时,在如下设置可查看:

image

点击之后,再选择要查看的文件

image