git相关问题
git rebase
git rebase -i HEAD~3 //合并3个commit pick //第一个要pick s //后面的都是s s //后面的都是s git rebase master //放到master后面
撤销 git add
//所有 git reset HEAD -- . //指定文件 git reset HEAD -- filename
撤销 git commit
git reset --soft HEAD^
// HEAD^的意思是上一个版本,也可以写成HEAD~1
// 如果你进行了2次commit,想都撤回,可以使用HEAD~2
其他参数解析:
-
--soft
不删除工作空间改动代码,撤销commit,不撤销git add . -
--mixed
不删除工作空间改动代码,撤销commit,并且撤销git add .
这个为默认参数, git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。 -
--hard
删除工作空间改动代码,撤销commit,并且撤销git add .
补充:如果该仓库到目前为止只有commit过一次代码,则会报错:
Unable to negotiate with XX.XXX.XX.XX: no matching host key type found. Their offer: ssh-dss
The recent openssh version deprecated DSA keys by default. You should suggest to your GIT provider to add some reasonable host key. Relying only on DSA is not a good idea.
As a workaround, you need to tell your ssh
client that you want to accept DSA host keys, as described in the official documentation for legacy usage. You have few possibilities, but I recommend to add these lines into your ~/.ssh/config
file:
# HostkeyAlgorithms +ssh-dss
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa
Other possibility is to use environment variable GIT_SSH
to specify these options:
GIT_SSH_COMMAND="ssh -oHostKeyAlgorithms=+ssh-dss" git clone ssh://user@host/path-to-repository
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理