1 关闭windows上自动转为crlf格式
windown 上git会默认打开autocrlf,但我们想强制设为为LF,这样linux和windows都兼容。
1.1 运行以下命令查看当前设置:
git config --global core.autocrlf
- 若输出为空或
false
,表示未启用自动转换。这是我们期待的结果。
1.2 禁用所有自动转化,即保持为LF
git config --global core.autocrlf false
2 统计修改代码行数
先把要统计的代码文件,加入到stage阶段,也就是git add <要统计的代码文件>,或者在vscode左边导航栏“源代码管理”中,把“更改”中的文件,点击加号,加入到“暂存的更改中”,也能达到同样的效果。
加入到stage后,操作:
git diff --cached --stat
便可以显示修改的代码行数,手动加一下即可。
3 本地在新分支B上开发代码,已经提交到B了,想和主分支A同步,并保持在当前分支B上
在目前的分支B上,后续要切换到主分支A上。
1)切换到主分支A上,并拉取主分支A代码
切换前,首先把主分支A代码删除: git branch -D dev-A
切换到主分支A,并拉取主分支A代码。
方法一:
重新从远程拉取主分支
git fetch origin dev-A # 获取远程最新代码(但不自动合并)
git checkout dev-A # 重新创建本地分支并切换到它
方法二:
或者更简洁的方式:
git checkout -b dev-A origin/dev-A # 一步完成拉取和切换
2)切换到开发分支B,进行rebase
git checkout dev-B
最关键的一步: 在当前的开发分支B上进行操作,效果是在主分支A上最新代码上,自动加入当前分支B的提交。
git rebase dev-A
4 本地在新分支B上开发代码,已经提交到B了,想和主分支A同步,并保持在主分支A上
1)切换到主分支A上,并拉取主分支A代码,和上一章保持一样。
2)保持在主分支A上,用cherry-pick 进行操作
git cherry-pick abc1234 # abc1234 应用到当前分支 A
5 HEAD用法
HEAD 代表当前所在提交。
^HEAD 或者HEAD^ 表示当前提交的父提交。
HEAD^ 或 HEAD^1 = 当前提交的第一个父提交(等同于 HEAD~1)。
HEAD^^ = 祖父提交(等同于 HEAD~2)。
HEAD^2 = 当前提交的第二个父提交(仅在合并提交时有意义)。
1) git reset --soft HEAD^ 是一个 Git 命令,用于撤销最新的提交(commit),但保留所有修改(包括工作目录和暂存区的变更)
--soft,软重置模式,仅回退提交历史,不触碰工作目录和暂存区。
2)git reset HEAD 取消暂存区修改,不会影响到内容。
5.1 撤销
撤销最近提交,回退commit到暂存区:
git reset --soft HEAD^ 可行
撤销最近提交,回退暂存区到工作区:
git reset HEAD~1 可行
git reset HEAD^1 和上面等价