Skip to content
鼓励作者:欢迎打赏犒劳

IDEA操作Git

Git分支误删找回

假如本地和远程的分支都被删除了,如何找回分支呢?

第一步,找到分支dev3的最后一个commitId

shell
git reflog

这个命令就可以看到分支的提交变化,找到删除分支的最后一个提交记录 githubPage

第二步,恢复分支

如果你找到的是分支的最后一次提交,可以通过以下命令来创建一个新分支:

shell
git checkout -b <new_branch_name> <commit_hash>

替换 <new_branch_name> 为你想要恢复的分支名称,<commit_hash> 替换为步骤2中找到的哈希值。

shell
git checkout -b dev3_1 eef5a16

这个时候本地已经有了一个dev3_1的新分支了,将它推送到远程即可

如何将多次commit合成一个

这个功能非常的实用,下面来看一下如何实现。需求:将第一次,第二次,第三次合并为一次提交。

鼠标放在自己的第一次提交上右键点击:Interactively Rebase from Here(从这里进行交互式衍合) 点击之后出现如下页面(Rebasing Commits): 第二步:选中其中一次提交记录Ctrl+A进行全部选中 第三步:点击Squash(如上图箭头所示) 在这里可以对我们的提交信息进行修改,这里建议自己新填写提交信息并且将之前的提交信息删除一些,言简意赅(我这里是将之前的提交信息全部删除,自己新填写的提交信息) 最后结果

取消Add的文件

新增的文件,也就是未被git管理的文件是红色的。add之后的颜色是绿色的。取消的话,直接右键回滚就可以了

取消commit的文件

比如,我们想将最新的的commit也就是【文件3和4提交】这个给取消掉。那么就需要选中它的上一个commit回滚。模式可以选择第二个混合模式。 别忘了强制push

将其他分支的commit合并到目标分支

有时候我们想将其他分支的个别的commit合并到指定的分支。idea非常的简单。仅仅需要点击一下,这个commit就跑到了指定的分支。

Q&A

推送代码到github仓库报错

推送代码到github仓库 ,报错 ssh: connect to host github.com port 22: Connection timed out Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.

测试连接

shell
ssh -T git@github.com

意味着无法通过默认 22 端口与 github 进行 SSH 连接

2、将 ssh 连接端口修改为 443 进行连接测试

shell
ssh -T -p 443 git@ssh.github.com

显示如上 Hi <username>! You've successfully authenticated, but GitHub does not provide shell access. 信息代表着通过 443 端口成功进行了身份验证,但 GitHub 不提供 shell 访问权限

3、修改 SSH 的 config 配置文件

编辑本地的 SSH 配置文件(通常位于 C:\Users\<username>\.ssh\config),如果该文件不存在,可以手动创建。 在配置文件中添加以下内容:

text
Host github.com
  Hostname ssh.github.com
  Port 443

4、再次测试连接

shell
ssh -T git@github.com

解决

如有转载或 CV 的请标注本站原文地址