git学习
1.git创建一个空分支#
参考:git创建一个空分支
#错误的方法
git branch new_branch
git checkout new_branch
git rm -rf ./*
#正常情况下,创建分支必须有父分支,此时创建分支基于当前父分支。并不是空分支
#采用上面方法会出现问题:若此时切到新建分支把内容删空,就会把本地父分支内容也删除掉。
#解决办法
1. git checkout --orphan newbranch #git checkout的--orphan参数
#该命令会生成一个叫newbranch的分支,该分支会包含父分支的所有文件。但新的分支不会指向任何以前的提交,就是它没有历史,如果你提交当前内容,那么这次提交就是这个分支的首次提交。
2. git rm -rf . #注意:最后的‘.’不能少。
#想要空分支,所以需要把当前内容全部删除,用git命令
3. echo '# new_branch' >> README.md
git add README.md
git commit -m 'new_branch'
4. git push origin new_branch #最后push到远程仓库,则新的空分支就创建成功了。
2.git 打patch(补丁)的使用:#
#生成patch
1.git diff > 1.patch #生成patch, 本地修改的没有执行add缓存的
2.git diff 文件名 > 1.patch #指定某个文件的修改打patch
3.git diff --cached > 1.patch #已经执行git add 在想打patch可以使用
#查看patch
1.git apply --check test.patch
#使用patch
1.git apply test.patch
#新的方法
1.git format-patch commit_id
#生成多个patch(git format-patch commitid会生成这个commit之后的所有patch,不包含该commit)
2.git format-patch -1 commitid
#提取单个commitid对应的patch
3.git format-patch -3 commitid
#从当前分支最新提交点往下共生成3个补丁
git am xxx.patch #应用patch
#可以发现这种打补丁方式会将提交信息直接都打进去,相当于add.commit都执行过了。
3.git回退到某一次提交#
git reset commit_id --hard
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步