GitHub Part1 克隆、同步、代码冲突

type
Post
status
Published
summary
GitHub是一个在线软件源代码托管服务平台,使用Git作为版本控制软件;本文主要介绍Vscode+GitHub的工作模式和如何使用GitHub Desktop解决代码冲突。
slug
github-1
date
Jan 3, 2023
tags
GitHub
GitHub Desktop
Vscode
代码冲突
category
实践技巧
password
icon
URL
Property
Feb 28, 2024 01:08 PM
⚠️
多图预警

一、Vscode + Github 克隆和同步

可以使用vscode和github进行协同工作,
开始的时候有以下几种模式:
  • 将本地文件夹初始化为给本地git仓库,在github上新建仓库,将本地的仓库推送到远程仓库
  • 如果想要将本地文件夹同步到已经存在且有数据的远程仓库中,建议先将本地文件上传到github,再使用vscode进行克隆,然后修改,然后推送

上传—克隆的模式的操作更为复杂,详细步骤如下:

1、选择克隆存储库
notion imagenotion image
2、如果是第一次,则需要github授权
3、授权完成再点击克隆存储库,会出现弹窗,可以选择需要克隆的仓库
notion imagenotion image
notion imagenotion image
4、选择然后克隆就可以了。

使用vscode将代码同步到远程

1、在对本地仓库进行更改之后会查看到提示,第一步需要将本地更改提交到暂存区
notion imagenotion image
2、将暂存区的更改提交到本地版本库(master)
notion imagenotion image
3、将本地修改同步到GitHub
notion imagenotion image

可能会遇到的问题:遇到这些问题可能是公司网络问题

推荐阅读:
 
1、Failed to connect to github.com port 443:connection timed out
## 取消代理——解决问题 git config --global --unset http.proxy git config --global --unset https.proxy
# 增加代理 git config --global http.proxy http://127.0.0.1:1080 git config --global https.proxy http://127.0.0.1:1080
2、Git: fatal: unable to access 'https://github.com/.git/': LibreSSL SSL_read: error:02FFF03C:system library:func(4095):Operation timed out, errno 60
网络问题,连不上github,当前网络限制访问github导致的报错原因;
多试几次
3、Git: fatal: unable to access 'https://github.com/anjhon1994/My_tools.git/': Failed to connect to github.com port 443 after 75062 ms: Operation timed out
git使用的网络端口不是VPN的端口,将git端口设置为vpn端口
# 查看代理 git config --global -l # 取消设置代理 git config --global --unset http.proxy git config --global --unset https.proxy # 设置代理 git config --global http.proxy http://127.0.0.1:7890 git config --global https.proxy https://127.0.0.1:7890 # 强行推送(覆盖)————在新增文件或其他时候 # 无法推送 refs 到远端。您可以试着运行“拉取”功能,整合您的更改。 git push origin master -f

二、GitHubDesktop + Vscode解决代码冲突

1、先使用GitHubDesktop克隆fork后的仓库到本地
notion imagenotion image
notion imagenotion image
2、选择原仓库的想要更新的版本,合并到自fork后的仓库
notion imagenotion image
选择上游仓库源的版本(这里选择 tangly1024.com 的deploy 版本), 显示有两个文件冲突了,点击 create a merge commit 创建合并提交.
notion imagenotion image
3、如果是整个文件都被修改了(文件名相同但内容不同,如相同名称的图片)会询问是使用哪个分支的提交;,
notion imagenotion image
4、如果是代码文件的内容有冲突,则会提示在你的默认编辑器中进行手动合并;
或者也可以点击下拉框直接选择使用哪一个仓库的同名文件(强烈不建议,因为文件内部如果有代码冲突的话,说明有内容更新,如果直接使用自己仓库的文件整体去覆盖,就相当于忽略了代码冲突,会导致后续部署出错; 当然如果文件自己没有改动,但是更新是还是有冲突,那就说明是上游作者修改了文件,这时候可以用新文件覆盖旧文件)
notion imagenotion image
5、解决冲突
notion imagenotion image
6、将修改好的本地版本同步到GitHub
notion imagenotion image

使用命令行解决代码冲突

If you have any questions, please contact me.