
IDEA操作Git
Git分支误删找回
假如本地和远程的分支都被删除了,如何找回分支呢?
第一步,找到分支dev3的最后一个commitId
shell
git reflog
这个命令就可以看到分支的提交变化,找到删除分支的最后一个提交记录
第二步,恢复分支
如果你找到的是分支的最后一次提交,可以通过以下命令来创建一个新分支:
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
解决