问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

从零开始使用GitHub同步代码

创作时间:
作者:
@小白创作中心

从零开始使用GitHub同步代码

引用
CSDN
1.
https://blog.csdn.net/qq_26545507/article/details/145116021

引言:

GitHub可以让我们在不同设备间同步代码。本文将详细介绍从零开始使用GitHub同步代码的全过程。

博主默认读者具有基础的命令行使用知识,文中关于命令行的开启、文件夹定位等步骤将不作介绍。

1. 环境配置

1.1. git 下载

电脑上需要下载git(Git - Downloads)

也可以下载git-desktop(https://github.com/apps/desktop)

两个版本差别不大,desktop版本的可以直接在图形界面登录,普通版首次使用会提示输入邮箱和秘钥(非密码)。

秘钥获取方式:



选择失效日期(Expiration),以及权限(可以全部勾选上),然后点击Generate Token即可。

1.2. git 配置

安装好之后需要将git的路径添加到环境变量,不会的可以参考这篇博客:windows中添加环境变量_windows添加环境变量-CSDN博客。

环境变量配置好后,按win+R,输入cmd打开命令行,输入git version,能够显示git版本即配置成功。如下图所示。

2. 创建本地存储库

打开我们需要同步的文件夹,例如我们在桌面创建了一个文件夹,里面有2个文件和一个文件夹,如下图所示:

使用命令行定位到文件夹,输入如下命令将该文件夹创建为本地存储库:


git init  

运行完毕后会给出如下提示:

3. 创建远程存储库

登录github,并创建一个存储库同步代码。

输入存储库名,之后创建即可。

4. 关联本地存储库与远程存储库

4.1 获取远程存储库网址

对于空的存储库,可通过下图获取网址(其实对于空存储库,github已经给出了同步命令)。

非空存储可可通过下图获取网址。

4.2. 执行关联

使用命令行定位到本地存储库,输入如下命令:


# 需要将 ${url} 替换为远程存储库网址
git remote add origin ${url}  

之后使用如下命令查看是否配置成功:


git remote -v  

如果关联成功,应有如下提示:

4.3. 同步忽略设置

一般来说我们只有代码需要同步,对于一些log文件或者权重文件不需要同步,因此需要设置忽略这些项。此外git同步一般有大小限制,大文件最好不要通过git同步。

需要创建一个文本文件,并将文件名改为.gitignore,这里实际上是把文件名删除了,将后缀由.txt改为了.gitignore。

这里需要忽略fold文件夹里的全部内容以及useles.txt文件,需要在.gitignore输入如下命令:

可见对于文件是输入文件路径及文件名(包含后缀),对于文件夹,在后面加上斜杠即可。

5. 推送本地文件到远程存储库

5.1. 将所有文件添加到暂存区

使用命令行定位到本地存储库,输入如下命令


git add .  

5.2. 将数据同步信息暂存到本地仓库

使用命令行定位到本地存储库,输入如下命令


git commit -m "Initial commit"  

输入后将提示暂存到本地的同步信息:

5.3. 确认关联的分支正确

先输入如下命令查看关联的分支:


git branch  

可见这里关联的是master分支

但是远程分支为main,我们需要切换分支(这里实际是重命名分支,但对于新存储库,效果一致)


git branch -M main  

如下图即切换成功

5.4. 推送数据

使用命令行定位到本地存储库,输入如下命令


git push -u origin main  

有如下提示即推送成功:

我们查看远程存储库,可见数据同步无误:

6. 后期使用过程中的同步过程

通过以上方式我们成功将本地存储库与远程存储库同步,在后期使用过程中只需要简单步骤即可实现代码同步。

6.1. 将本地修改推送到远程存储库

例如这里我们修改atex.txt的内容后,将其同步到远程存储库。


# 查看当前状态
git status
# 将修改添加到暂存区
git add .
# 设置当前提交的提示信息
git commit -m "change"
# 推送到远程仓库
git push origin main  

以上四行代码可整合到如下一行执行,执行效果与单独输入每行并执行效果相同:


git status && git add . && git commit -m "change" && git push origin main  

如下提示则表示推送成功。

6.2. 将远程存储库的内容同步到本地

6.2.1. 同步到旧电脑

对于我们创建存储库的电脑,将远程存储库的内容同步到本地使用如下命令:


git pull origin main  

同步成功会出现如下提示:

6.2.2. 同步到新电脑

对于一台新电脑,我们同步数据需要使用如下步骤:


# 下载数据,需要将 ${url} 替换为存储库网址
git clone ${url}
# 切换到存储库文件夹,需要将 ${folder} 替换为存储库文件夹
cd ${folder}
# 设置远程存储库地址,需要将 ${url} 替换为存储库网址
git remote set-url origin ${url}
# 同步代码
git pull origin main  

后续按 “同步到旧电脑” 步骤同步即可

7. 冲突解决

在同步时最容易出的错误就是本地和远程存在冲突,以下介绍两种冲突解决方案。

7.1. 从云端同步代码到本地时,本地存在未同步到云端的更改

例如你现在在本地做了一些更改,但是没有同步到云端,此时将云端代码同步到本地会导致本地更改丢失,因此是不安全的,会报错。

此时一般选择强制放弃本地更改,让本地和云端保持一致,这会丢失本地所有未提交的更改

一般是报如下错:

Please commit your changes or stash them before you merge.
Aborting

强制同步代码为:


git reset --hard
git pull origin main  

7.2. 从本地推送代码到云端时,云端存在未同步到本地的更改

例如现在有两个人在维护一个远程存储库,在12:00时两个程序员同时把云端代码同步到本地。程序员A把手里的代码作了修改,在13:00把代码上传到云端,此时程序员B手里的代码还是12:00时同步下来的,程序员B将手里的代码修改后准备上传到云端,发现不能上传,因为上传后就把程序员A的修改覆盖了,所以该上传是不安全的。

这种情况一般会忽视云端未同步的更改,强制将本地的代码同步到云端,注意这会丢失所有云端未同步的更改


git add .
git commit -m "Your commit message"
git push -f origin main  

7.3. 已建好云端存储库后,更改.gitignore

首先需要更改 .gitignore 文件。

其次需要清除已经被 Git 跟踪的文件,如果不清除,即使在 .gitignore 中标记了,仍会继续同步。


# 对于目录
# 需要将 ${directory} 更换为已被Git同步但是需要解除同步的文件夹
git rm --cached -r ${directory}
# 对于文件
# 需要将 ${file} 更换为已被Git同步但是需要解除同步的文件
git rm --cached ${file}  

之后正常同步即可。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号