常用方法
还原工作区(文件内容)
git checkout – <file_name> 丢弃工作区的修改,并用最近一次的commit内容还原到当前工作区(对文件中内容的操作,无法对添加文件、删除文件起作用)
git checkout HEAD^ – <file_name> 将指定commit提交的内容(HEAD^表示上一个版本)还原到当前工作区
git checkout <branch_name> – <file_name> 将指定分支的指定提交内容还原到当前分支工作区
git reset --soft HEAD^ 撤销上次commit,代码不动
git reset --hard [commit id] 代码回退到指定版本
git reset HEAD <file_name> 丢弃暂存区的修改,重新放回工作区,撤销ADD
git restore --staged <file_name> 将暂存区的修改重新放回工作区(包括对文件自身的操作,如添加文件、删除文件)
git restore <file_name> 丢弃工作区的修改(不包括对文件自身的操作,如添加文件、删除文件)
git checkout --文件名 还原指定文件到最近commit 的版本,放弃工作区指定文件的修改
提交时忽略文件 echo “XXX.txt” >>.gitignore
切换与创建分支
git checkout <branch_name > 切换分支
#git switch <branch_name> 切换分支
git checkout -b <branch_name> 创建并切换至分支
#git switch -c <branch_name> 创建并切换至分支
git checkout -b test_main remotes/origin/test_main 参数1本地分支名 参数2远程分支名/仓库名/远程分支名 创建分支并跟踪远程分支
合并时
git push --force 覆盖
首先,执行 git stash,将本地工作区备份(即放入 Git 存储堆栈中),此时当前工作目录和暂存区是干净的,恢复到上一个提交的状态;
然后,使用 git pull 或者 git merge 命令拉取最新修改;
最后,执行 git stash pop 取出备份,这个过程自动合并。如果成功,则自动将此备份从暂存区中删除;如果有冲突,则需要手动解决冲突,然后执行 git stash drop 从存储堆栈中移除该储藏项。
请注意,执行 git stash drop 命令后,储藏项中的更改将无法恢复。如果你仍然需要这些更改,请在删除储藏项之前使用 git stash apply 命令或 git stash pop 命令将其应用到工作目录。
提交
git commit --amend -m "new message" 修改最后的commit信息
存储
Git 储藏(stash)详解_git stash-CSDN博客
问题
重复分支
git push origin HEAD:branch2
这个命令显式地指定了你要推送的本地引用(HEAD),以及远程仓库的目标引用(origin/branch2)切分支后再次执行会导致创建多个远程分支
gerrit在windows环境下配置密钥无权限
ssh-keygen -t rsa -C “XXX@qq.com”
生成的密钥无权限时更换协议
ssh-keygen -t ecdsa -c 自己的邮箱
拉取代码时scp -p -P 部分小p换成大O