前不久刚开始用git跟小伙伴们做一些小项目,不定时更新一下想法和笔记(随便记,很杂)

1. .gitignore和.gitattributes两个文件

ignore用来写需要git忽略的文件名,attributes我是用来改上传到仓库显示的主语言

1
2
3
4
5
// 在ignore中添加这个文件,这个文件在本地可看到,远程看不到
package-lock.json
.DS_Store
*/.DS_Store
.gitignore%

1
2
// 在attributes中添加这些信息,将html文件全部记为jupyter notebook,将显示出来的“错误”的主语言改成你想要的就行了
*.html linguist-language=jupyter notebook

但是普通创建这些文件可能不行,用git bash来创建:

1
touch .gitignore

.gitignore里写需要忽略的文件即可,可以使用通配符*,之前在push过后想再忽略某些文件,直接改.gitignore不生效,需要执行:

1
git rm -r --cached .

清除本地的缓存,再重新add.然后commit

2. 同步仓库操作

不太敢用在另一个分支上开发,pull到master再合并过来这种方法(翻车过怕自己又忘了),所以索性直接在本地master和远程master操作:

1
2
3
4
5
6
7
8
9
10
// 准备上传的时候先把更改内容存入堆栈
git stash
// 开始pull,不过有时候pull需要指定远程分支名
git pull (origin master)
// 自动合并后应用存储,不敢用pop,会把堆栈中的内容删掉
git stash apply
// 再push
git add .
git commit -m "info"
git push (origin master)

3. Git个人Token双重认证

2021年8月份左右Git开始实行双重认证,受影响的范围有命令行访问以及API等等,首先需要创建一个token,然后下载GMC core

1
2
brew tap microsoft/git
brew install --cask git-credential-manager-core

如果跳出来登陆界面,密码填写token即可

4. 修改分支名

假设分支名称为oldName,想要修改为 newName

1. 本地分支重命名(还没有推送到远程)

1
git branch -m oldName newName

2. 远程分支重命名 (已经推送远程-假设本地分支和远程对应分支名称相同)

  1. 重命名远程分支对应的本地分支
1
git branch -m oldName newName
  1. 删除远程分支
1
git push --delete origin oldName
  1. 上传新命名的本地分支
1
git push origin newName
  1. 把修改后的本地分支与远程分支关联
1
git branch --set-upstream-to origin/newName

5. 删除项目中所有.DS_Store文件

1
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch

6. 删除本地与远程分支

1
2
3
# 建议在合并进master后将分支删除
git branch -d 本地分支
git push --delete origin 远程分支