type
status
date
slug
summary
tags
category
icon
password
SSH
生成ssh密钥:
ssh-keygen -t rsa -b 4096 -C "keyname"
.hub
:公钥,放在 GitHub
等平台上;再使用本地私钥就可以访问
GitHub上传多个ssh公钥的原因Git
- 对于子模块的更新:对于一些很久的分支,要用以下命令更新:
git submodule update --init --recursive
git status
:查看状态,确定一下是否有 没有track
的子模块
- 配置提交信息,方便确认某个具体的提交是谁干的:
git config --global user.email "your email"
git config --global user.name "your name"
- 如果已经有了代码,需要在新分支上进行开发:
git checkout -b yourname/0817_test
,其中0817是日期; - 如果不是在主分支上进行修改,而是需要在某个分支上进行修改:先
checkout
到该分支上,再运行上面的创建分支的指令;
git add
xx.py
将xx.py
中的修改添加到暂存区中;git add .
将所有修改都添加到暂存区中;
- 推荐在
commit
的时候,一次性完成一个模块的功能,然后一起commit
; 推荐的备注格式:[yourname] details
git commit -m “[Xukun Cai]: add a new module”
以上的操作都是在本地上进行的,如果希望将操作上传到远程:
git push
另:如果是第一次上传,会报错,需要手动指定上游:
git push --set-upstream origin yourname/date_test
撤回分支
- 如果在提交一个新分支后,发现有地方需要修改,或者需要添加实现同一个功能的新代码:
如果在源代码的基础上进行修改的话,会在此基础上再叠一个新分支,会造成分支混乱;所以:
git reset --soft HEAD^
比如,假设在上一次提交中,先进行了某些修改,然后add
到了暂存区,然后将其commit
到了远程分支中;那么运行上述代码后,刚刚commit
的代码会重新回到暂存区中; 如果这么操作报错,直接强制提交:git push -f
多个仓库
以上,都只是在一个仓库上进行操作;如果想在多个仓库上进行操作:
git remote -v
:列出当前关联的所有仓库;
- 使用
git remote add newBranchName url
关联新仓库;
- 关联后,使用
git fetch newBranchName --depth 10
从新仓库上拉取; - 注意,这里的
--depth 10
的意思是只要最近10次的提交,防止因为仓库过大(可能几十个g)而导致下载时间很长;
多分支合并
git merge
用于将两个分支的历史合并,会创建一个新的合并提交,并保留合并前两个分支的历史。- 首先,切换到需要合并到的主分支上;如在
main
分支上运行git merge feature-branch
时,Git 会将feature-branch
分支的更改合并到当前分支;
- 如果两个分支没有冲突, Git 会自动创建一个新的合并提交,将两个分支的历史记录结合在一起;
- 如果存在冲突, Git 会要求手动解决冲突,然后创建合并提交;
- 如上图,当你和其他人同时开发某一个分支的时候,会从某个节点开始,你们两个人的分支是不一样的(如图上的B开始);此后,当想要合并的时候(如图上的 F 和 D 想要合并的时候),需要手动解决冲突;
- 但是,如果直接
merge
的话,可能会造成分支太臃肿的情况,整个提交的线性度不是很好;所以引入了rebase
,如上图的第四个,将开发分支上的修改 E 和 F 移到主分支的修改 C 和 D 后,相当于依次进行修改;
- 最后,例如别人进行了很多次修改,然而只想要其中的某一个修改,并不想全部
merge
的时候:git cherry-pick <commit_hash>
注意使用之前要先找到想copy的修改的哈希值
Tmux
将代码挂在服务器上,从而不用担心 VS Code 关闭后代码会停下来;
- 安装:
apt-get install tmux
- 创建:
tmux
:默认创建;tmux new -s xxx
:指定名字创建;
- 找回终端:
首先查看目前的所有终端:
tmux ls
然后,使用tmux attach -t xxx
回到xxx
终端;
- 删除终端:
在终端内使用:
exit
在终端外删除指定终端:tmux kill-session -t xxx
将所有终端全部删除:tmux kill-server
- Author:bilibili150
- URL:Notion 博客 | 一个NotionNext搭建的博客 (my-notion-web-seven.vercel.app)/article/git
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!