在一个游戏网站学习的git命令 https://learngitbranching.js.org/?locale=zh_CN
给一台新的主机添加ssh权限
首先在自己电脑上生成公钥私钥
ssh-keygen -t ed25519 -C "lichengyu2005119@gmail.com"查看公钥:
cat /root/.ssh/id_ed25519.pub登录github,点击ssh安全的一栏,添加ssh密钥,cat输出的就是公钥
给git配置用户
git config --global user.name "Akiyama-sama"
git config --global user.email "lichengyu2005119@gmail.com"测试看看是否成功
ssh -T git@github.com本地仓库
git commit 提交当前记录
git branch name 在当前节点创建分支
git checkout name 转到name分支
git merge branchName将指定分支合并到当前分支
git rebase main 将当前分支的记录合并到main分支,作为main分支的儿子
git checkout hash可以将HEAD指向具体的某一个提交记录
HEAD是用于方便用户移动提交记录的一个指针而已,没有其他具体的含义
分支
git checkout -b 分支名创建一个分支并且指向这个分支
git branch 分支名 仅仅创建一个分支
git branch 列举本地所有分支
git branch -d 分支名 删除指定分支
git merge 分支名 切换到主分支后,然后在用指定分支名合并到当前分支
相对引用:
git checkout HEAD^指向HEAD指向的父提交记录,这样就不需要checkout 哈希值了,便于书写
git checkout HEAD~3 向前走三步
加上-f [branchName]后就有让此分支指向另一个提交
例如git branch -f main HEAD~3
上面的命令会将 main 分支强制指向 HEAD 的第 3 级 parent 提交。
撤销变更
git reset HEAD^是将当前分支撤回一步,像是没有提交过一样
git reset --mixed HEAD~1 撤回上一次提交,将上次提交保留在工作区,适用于少提交了一些文件,想重新提交的情况。
git revert HEAD是与多人协同工作时的用法,他是新提交一个记录,此记录是用来撤销当前提交的,即revert 之后就可以把你的更改推送到远程仓库与别人分享啦
远程仓库
git clone将远程仓库的代码克隆到本地,并且多了一个名为 o/main 的远程分支(- <remote name>/<branch name>)
远程分支有一个特别的属性,在你切换到远程分支时,自动进入分离 HEAD 状态
git checkout o/main 就会切换到远程仓库
git branch -r查看远程所有分支
git checkout -b 本地分支名字 origin/远程分支名在本地创建一个分支,与那个远程分支关联
git fetch - 从远程仓库下载本地仓库中缺失的提交记录
- 更新远程分支指针(如 o/main)
git fetch 并不会改变你本地仓库的状态。它不会更新你的 main 分支,也不会修改你磁盘上的文件。所以把他理解为单纯的下载操作
git pull=git fetch+git merge 即从远程仓库下载数据到本地的远程分支o/main,然后本地仓库的main分支再合并o/main分支
git pull --rebase=git fetch+git rebase即从远程仓库下载数据到本地的远程分支o/main,然后合并main和o/main到o/mian 的儿子
git push -u orign main. -u参数用于关联本地与远程分支,后续推送只需git push