通过git命令行或编译器将代码上传至Gitee/GitHub及单仓库多项目的管理流程详解
目录
平台:Windows 10
工具版本:Git-2.37.0、PyCharm 2021.3.1中文版
前言
日常代码开发中,为了便于代码备份、还原和管理,可以将代码上传到代码托管平台,如Gitee或GitHub,此过程可通过Git这款软件实现。Git作为免费的开源分布式源代码管理工具(版本控制工具),提供了一种有效的方式来管理项目的版本、协作开发、以及跟踪和应用文件的变化,旨在快速高效的处理从小型到超大型项目。它是开发者工具箱中必不可少的工具之一,广泛应用于软件开发和其他需要版本控制的领域。上传代码至云端可以使用Git命令行的方式,也可借助编译器(如VS Code、IDEA、PyCharm等)更简便的实现。
安装Git及相关术语介绍
安装和配置过程可参考以下教程,此处不再赘述
常用相关术语:
-
仓库(Repository):存储项目所有文件和历史记录的数据库,包含代码、分支、标签、配置等,分为本地仓库(Local Repository)和远程仓库(Remote Repository)。本地仓库存在于本地;远程仓库类似于网盘,托管在服务器上,存在于云端
-
更改(Change):增、删、改文件
-
工作区(Working Directory):Git跟踪的目录,即本地电脑上用户直接编辑文件的目录。它是对项目的某个版本独立提取出来的内容,这些从Git仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改
-
暂存区(Staging Area)/索引(Index):临时记录待提交的更改(Change),暂存区是一个文件,保存了下次将要提交的文件列表信息
-
Git库/版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库,用来保存项目的元数据和对象数据库的地方。 这是Git中最重要的部分,从其它计算机克隆仓库时,复制的就是这里的数据
-
提交(Commit):将更改存档,对暂存区的内容生成一个永久快照,包含唯一提交ID(也称为“SHA”或哈希值,由40个十六进制字符组成的字符串)、提交作者、时间、提交信息
-
分支(Branch):指向某个提交(Commit)的指针,记录了特定开发线的历史轨迹。可以理解为仓库的平行版本,不同分支具有独立的时间线
-
合并(Merge):融合独立的时间线,把不同分支上的修改整合到一起,即从一个分支提取更改,然后将其应用到另一个想要合并入的分支(对只提取更改的分支无影响)
-
推送(Push):上传本地提交(Commit)至远程仓库
-
提取/获取(Fetch):从远程仓库下载提交(Commit),从远程仓库添加更改到本地工作分支,而不提交它们,在更改提交到本地分支之前可先进行审查
-
拉取(Pull):获取(Fetch) + 合并(Merge)
-
历史(History):提交(Commit)的时间线
-
头(HEAD):指向当前所在提交(Commit),代表“当前位置”
-
检出(Checkout):读档,从仓库中将文件的最新修订版本复制到工作区
-
克隆(Clone):复制远程仓库到本地
-
上游(Upstream):指定远程分支为当前分支的默认拉取/推送目标
-
变基(Rebase):将提交到某一分支上的所有修改都移至另一分支上,保持提交历史线性(提交历史是一条直线没有分叉)。变基是将一系列提交按照原有次序依次应用到另一分支上,而合并是把最终结果合在一起,两者会导致提交历史不同,但整合的最终结果是一样的
-
标签(Tag):标记某个分支的某个版本
-
冲突(Conflict):多人对同一文件的同一部分进行了修改,导致冲突的发生
Git文件的三种状态:
-
已修改(modified):表示修改了文件,但还没保存到数据库中
-
已暂存(staged):表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中
-
已提交(committed):表示数据已经安全地保存在本地数据库中
这会使Git项目拥有三个阶段:工作区、暂存区以及Git目录。

基本的 Git 工作流程如下:
-
在工作区中修改文件
-
将想要下次提交的更改选择性地暂存,这样只会将更改的部分添加到暂存区
-
提交更改,找到暂存区的文件,将快照永久性存储到 Git 目录
如果Git目录中保存着特定版本的文件,就属于已提交状态。 如果文件已修改并放入暂存区,就属于已暂存状态。 如果自上次检出后,作了修改但还没有放到暂存区域,就是已修改状态。

参考教程
-
Learn Git Branching(0基础建议先在此网站熟悉)
使用Git命令行上传代码
获取仓库
上传代码之前首先需要获取Git项目仓库,获取Git项目仓库的方法有两种:第一种是在现存的目录下,借助Git客户端通过导入所有文件来创建新的Git仓库;第二种是在Gitee或GitHub等网站上创建一个Git仓库,从而在本地克隆出一个新的镜像仓库来。
两种方法首先都需要借助Gitee或GitHub等服务端提供的管理网站上自行建立仓库(以Gitee为例)
-
新建仓库

-
配置信息,若初始化仓库、设置模板会默认造成第一次提交,不建议勾选(若勾选也不是大问题,关联仓库后多执行一步)

方法一:在本地目录中初始化新仓库
-
在此项目所在的目录右键,点击Git Bash Here打开Git命令窗口,执行初始化操作:
git init,执行完毕后项目目录会多出一个名为.git的隐藏文件夹,用以存储Git需要的数据和资源
-
将文件添加至暂存区:
git add <文件名>,也可使用git add .将目录下所有文件添加至暂存区(git add .或git add -A或git add -all会添加当前目录及其所有子目录中新建、修改过的和已删除的文件;git add *命令会将当前目录下的所有文件添加到暂存区,包括新建的、修改过的和已删除的文件,但不包括子目录中的文件。此时只有新建文件,因此三条命令作用等价) -
将暂存区内容提交至本地仓库:
git commit -m "<提交信息>",当不指定-m,将打开一个文本编辑器,提示输入提交消息,因此提交信息必不可少 -
连接远程仓库:
git remote add <自定义名字> <远程仓库URL>,执行此命令后,在命令行中可使用<自定义名字>(一般为origin)来代替整个<远程仓库URL>,<远程仓库URL>由Gitee服务网站获取,HTTPS或SSH都可-
HTTPS(推荐轻量级用户使用):使用加密的网页访问通道读写仓库,使用用户名及密码进行鉴权。HTTPS 方式push大文件可能引发错误
-
SSH(推荐资深用户或经常推送大型文件用户使用):SSH全称(Secure SHell)是一种网络协议,顾名思义就是非常安全的shell,主要用于计算机间加密传输。使用加密通道读写仓库,无单次上传限制,需先设置 “账户 SSH 公钥”,完成配对验证(参考:SSH 公钥设置 | Gitee 帮助中心)

-
-
若云端仓库不为空,需要先手动将云端仓库文件拉取到本地:
git pull --rebase <自定义名字> <分支>(自定义名字为上一步骤定义的,新建仓库的默认主分支一般为master);或者使用fetch和merge两行命令替代:git fetch <自定义名字>、git merge <自定义名字>/<分支> --allow-unrelated-histories;或者使用fetch和rebase两行命令替代:git fetch <自定义名字>、git rebase <自定义名字>/<分支>。若云端仓库完全为空则跳过此步骤- 因为云端仓库中该上游分支不为空,证明该上游分支下已经有了一次提交,而本地分支中也存在一次提交,上游分支的提交和本地分支的提交无公共祖先,导致无法推送,因此只能先执行拉取合并操作。原因参见Git官网:Git - 变基章节
-
将本地提交推送到云端仓库:
git push <自定义名字> <分支>
云端仓库为空时使用举例:

方法二:从其它服务器克隆已存在的Git仓库
-
此处若克隆开源项目仓库,可以将该仓库下载到本地,但此教程是管理自己的代码,因此建立自己的仓库
-
在本地某个目录下右键,点击Git Bash Here打开Git命令窗口,执行克隆操作:
git clone <url>,执行完毕后此目录下会多出一个文件夹,文件夹内同样会多出一个名为.git的隐藏文件夹。如果想在克隆远程仓库的时候,自定义本地仓库的名字,可以通过额外的参数指定新的目录名:git clone <url> <目录名>或者不指定新目录名,克隆完成后再修改默认目录名(此处云端仓库完全为空,所以会有警告;另外,克隆下来的仓库,命令会自动将其添加为远程仓库并默认以“origin”为简写)
无论使用上述两种方法种的哪一种,本地仓库和云端仓库都已关联起来了,且此时本地与云端完全一致。方法一更适用于将本地已有项目上传至云端,方法二更适用于团队协作、本地项目未创建等情况,不同情况采用不同方法复杂程度也不同,一般情况下方法二更加便捷。
更新项目
更新项目将从以下方面介绍:新建、更改、删除、移动、重命名
工作目录下的每一个文件都不外乎这两种状态:已跟踪(Tracked)或未跟踪(Untracked)。 已跟踪的文件是指那些被纳入了版本控制的文件,在上一次快照中有它们的记录,在工作一段时间后, 它们的状态可能是未修改(Unmodify),已修改(Modified)或已放入暂存区(Staged)。简而言之,已跟踪的文件就是Git已经知道的文件。另外,可以使用**git status**(可以使用 git status -s 命令或 git status --short 命令得到一种格式更为紧凑的输出)来查看哪些文件处于什么状态。

-
新建:当新建一个文件时,该文件处于未跟踪状态,需执行命令
git add <新文件>跟踪新文件,将其放入暂存区 -
更改:本地编辑过某些文件之后,由于对它们做了修改,Git将它们标记为已修改文件(可以使用
git diff <文件名>来查看相较于暂存区域修改了什么内容)。 之后可根据需要选择性地将这些修改过的文件放入暂存区,执行命令git add <文件名> -
删除:要从Git中移除某个文件,就必须要从已跟踪文件清单中移除(确切地说,是从暂存区域移除),然后提交。
-
方式一:可以用
git rm <文件名>命令完成此项工作,并连带从工作目录中删除指定的文件,这样以后就不会出现在未跟踪文件清单中了 -
方式二:先手动从工作目录中删除文件或执行
rm <文件名>删除文件,此时工作区和版本库就不一致了,需要再运行git rm <文件名>或者git add <文件名>记录此次删除文件的操作,下一次提交时,该文件就不再纳入版本管理了
另,
-
若要删除多个文件除了采用上述两种方式一个个删除外(或使用for循环),也可先手动从工作目录中删除,再执行
git add -A来添加所有更改 -
若不小心将已提交到版本库的文件误删,可以用该命令把误删的文件恢复到最新版本:
git restore <误删文件名>(推荐使用,适用于Git 2.23及之后的版本,这条命令会将工作区中的指定文件恢复到暂存区中的最新状态,如果文件未被暂存,它将恢复到最近一次提交的状态)或者git checkout -- <误删文件名>(--用于区分分支名和文件路径,避免混淆。这条命令其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”)。若文件还未被添加到版本库且未暂存就被删除,是无法恢复的。若文件已提交到版本库,但又对其进行了修改,修改后未对其暂存便误删,则只能恢复至修改前的状态,即版本库中的状态;若修改后对其进行了暂存再误删,直接执行git restore <误删文件名>撤消删除操作,可将文件恢复至修改后的状态,即暂存区中的最新状态。
-
-
移动:
-
方式一:移动操作可执行
git mv <原路径> <目标路径> -
方式二:先手动从工作目录中进行移动文件或执行
mv <原路径> <目标路径>移动文件,此时工作区和版本库就不一致了,移动后的文件显示为未跟踪状态,移动前的文件显示为被删除状态,需要再运行git rm <原路径>和git add <目标路径>(或者用git add .代替上述两行命令)记录此次重命名文件的操作
-
-
重命名:
-
方式一:重命名操作可执行
git mv <原文件名> <新文件名> -
方式二:先手动从工作目录中重命名文件或执行
mv <原文件名> <新文件名>重命名文件,此时工作区和版本库就不一致了,重命名后的文件显示为未跟踪状态,重命名前的文件显示为被删除状态,需要再运行git rm <原文件名>和git add <新文件名>(或者用git add .代替上述两行命令)记录此次重命名文件的操作
-
项目更新完毕后,需要将更新提交至暂存区。提交至暂存区之前,需要确认还有什么已修改或新建的文件还没有git add过, 否则提交的时候不会记录这些尚未暂存的变化。 这些已修改但未暂存的文件只会保留在本地磁盘。 所以,每次准备提交前,先用 git status 看下,所需要的文件是不是都已暂存起来了, 然后再运行提交命令 git commit -m "提交信息",将暂存区的更新提交至本地仓库。
比如在test.txt文件中添加一行“Hello World”并提交至本地仓库

上传云端
最后需将本地更新推送至远程仓库,执行git push <自定义名字> <分支>。此时可以在Gitee网站服务端看到提交内容。

另外也可使用第三方客户端(参考Git - GUI Clients)提供的可视化界面进行以上操作,从而避免反复输入这些繁琐的命令行以达到事半功倍的效果。
注意:
-
Git认为空文件夹是无效的,也就是不会提交
-
Git对文件名的大小写不敏感,所以如果将文件名从小写的config重命名为大写的CONIFG,Git并不会认为这是一次更新
-
可多次添加文件到暂存区并提交本地仓库,以根据不同修改目的,记录多个更新、填写多个更新日志。最后是上传远程仓库,上传远程仓库可一次性将多次本地仓库修改同步到远程仓库。上传远程仓库后,本地仓库副本的修改才会真正同步到远程仓库
-
跳过放入暂存区域直接将已经跟踪过的文件的更改提交至本地仓库:
git commit -a -m "提交信息" -
.gitignore指定不纳入版本控制的文件(如日志、临时文件等),也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件,因此可以创建一个名为
.gitignore的文件,列出要忽略的文件,格式可参考github/gitignore: A collection of useful .gitignore templates
参考教程
使用编译器上传代码
使用编译器上传代码就相当于是借助第三方客户端,从而简化一些操作。但是并不是所有的操作都能在编译器中完成,因此掌握命令行也是很有必要的。一般主流的编译器均可在插件库安装Gitee或者GitHub(也可使用其他插件代替),安装Gitee插件可上传至Gitee,安装GitHub插件可上传至GitHub,二者流程大致相同(还是以Gitee为例,使用PyCharm编译器)。

插件安装完成后登录Gitee账户

获取仓库
方法一:直接分享
-
上方菜单栏选择VCS → Share Project on Gitee

-
输入相应信息,点击分享(相当于执行
git init,并在Gitee上自动创建远程仓库),此时项目工程文件夹下已有.git隐藏文件夹
-
选择要上传至Gitee的文件(文件颜色为暗红色此时表示未跟踪状态,可以右键某一个文件,将其添加到
.gitignore,表示不将其纳入版本控制,也就不会上传了),输入提交信息后点击添加(相当于执行git add .和git commit -m "Initial commit"),项目自动推送至云端(相当于自动执行git push origin master)
-
此时可在Gitee网站服务端看到推送的项目文件

方法二:逐步操作
-
上方菜单栏选择VCS → 创建Git仓库,之后在弹出的弹窗中选择为哪个项目创建Git仓库(默认是本项目),再点击确定(相当于执行了
git init),此时项目工程文件夹下已有.git隐藏文件夹,且文件颜色为暗红色表示未跟踪状态
-
此时菜单VCS变成了菜单Git,点击Git再点击提交

-
选择要提交的文件,输入提交信息,最后点击提交按钮(相当于执行
git add .和git commit -m "提交信息"),此时项目列表文件颜色恢复为白色,表示已放入暂存区
-
将暂存区内容推送至云端,在此之前需先在Gitee网站上新建一个仓库并获取HTTPS或SSH链接(流程见上:获取仓库),创建的仓库可完全为空也可设置一些模板,以创建Readme模板为例。因仓库不为空,所以需要先手动将云端仓库文件拉取到本地(若不先拉取,直接推送会失败),再进行推送。
-
连接远程:上方菜单栏选择Git → 管理远程,输入相应信息

-
拉取文件:上方菜单栏选择Git → 更新项目;之后选择在传入变更上变基当前分支,若右下角报错“无法更新”,根据提示设置上游分支为远程仓库分支(无上游分支时需先执行提取操作检出分支),再点击更新,执行在传入变更上变基当前分支(相当于执行
git fetch origin>和git rebase origin/master)。也可单独操作,先点击提取(相当于执行git fetch origin>),再点击变基(相当于执行git rebase origin/master)。此时若直接拉取操作或先提取后合并会报错(refusing to merge unrelated histories),因为合并时默认执行的命令行(可在下方Git → 控制台查看)缺少参数(--allow-unrelated-histories)。
-
另,更新项目两个选项相当于各是一个组合动作:
-
将传入变更合并到当前分支:相当于先提取(fetch)后合并(merge)
-
在传入变更上变基当前分支:相当于先提取(fetch)后变基(rebase)
-
-
推送文件:上方菜单栏选择Git → 推送;在弹出的弹窗中可确认提交内容无误后,再点击推送按钮(相当于自动执行
git push origin master)
-
-
此时可在Gitee网站中看到相应文件及提交信息等内容。
以上两种方法都可将本地仓库和云端仓库关联起来,且此时本地与云端完全一致。方法一相对来说更简便,但无法初始化仓库,对仓库的配置只能后期更改,且创建的仓库只能管理一个项目;方法二的流程和更新项目(见下)的流程相差不大,创建本地Git仓库时可以选择在同一文件夹的多个项目,以便一个仓库管理多个项目。
更新项目
在编译器中对本地项目进行更新(新建、更改、删除、移动、重命名)之后,编译器会自动执行相应的git命令行将更新提交至暂存区(还是可使用Git → 控制台查看)。若未使用编译器对项目更新,则打开编译器后,编译器会自动识别出发生了哪些变化,之后再进行提交时,可以看到发生的变化均已识别出,勾选对应文件即可。一般情况下,无论对项目做出哪种更新,只需无脑点提交。
例如,我使用文件管理器新建一个one.py文件(不使用编译器),再使用编译器新建一个two.py文件(文件新建完成后,会弹出弹窗询问是否将文件添加至Git,选择添加,此时相当于自动执行命令git add two.py),另外再使用编译器将原有的main.py文件重命名为test.py文件(相当于自动执行命令git rm main.py和git add test.py)。提交之前可先使用命令行git status查看文件状态:两个文件已添加至暂存区(一个重命名、一个新建文件)、一个未跟踪文件(因为采用文件管理器新建文件,编译器没有自动执行git add命令)。

上方菜单栏选择Git → 提交,可以看到将要提交的内容:一个重命名文件、一个新建文件、一个未跟踪文件,全部勾选并输入提交信息后点击提交按钮

相当于自动执行以下命令:git add one.py、git commit -m "更新项目test"
编译器控制台中自动执行的命令如下:(个人认为有些命令重复了,比如1、3行,将one.py文件添加至暂存区添加了两遍,但--ignore-errors参数作用是忽略任何错误,其他参数可自行查找资料;另外个人认为第2、3行命令可以删去,除了第三行git add one.py第一行执行过了,其他的更新项目时已执行过了)

上传云端
在编译器中将本地更新推送至远程仓库:上方菜单栏选择Git → 推送;在弹出框中确认推送的提交后点击推送按钮(相当于自动执行git push origin master)。此时可以在Gitee网站服务端看到提交内容。

管理项目
一个仓库仅管理一个项目有时显得过于冗余或浪费,对于大型的项目工程可采用单独的云端仓库存储,对于小型的项目工程可将多个项目存储到一个云端仓库中;或者由需求决定,如一个前后端分离项目则可用一个仓库管理前端和后端两个项目,也可在Gitee管理网站上创建组织,将前端和后端项目作为独立的仓库放在该组织中统一管理。
单仓库单项目
一个Git仓库仅管理一个独立项目(一个大型独立项目、第三方SDK库、计划开源的项目),管理单个项目的流程见上,不再赘述(上面创建的都是单仓库单项目),自己可根据需要选择哪种方法。
单仓库多项目
一个Git仓库仅管理多个项目(多个小型项目、多个项目相关度高等)。
-
若多个项目之间不相关,可将多个项目放在同一个父目录下,将父目录作为一个项目按以上流程获取仓库、提交推送等(使用git命令行上传或者使用编译器上传中的方法二),
.git版本库位于父目录下(即与项目目录同级)。对某个项目进行更新后,正常进行提交推送即可。在此目录下的项目进行若干提交后,再新建一个项目(新建项目初始为未跟踪状态),则此新建项目的历史提交线上默认会包含这些提交信息。这种方式管理多个项目,提交信息在同一条提交历史时间线上(可以过滤无关项目的提交记录:如使用git log -- ProjectA;或者提交信息规范项目名),多个项目不相关,因此每一次提交可以保证只有一个项目有更新。具体操作流程同上,不再赘述。提交历史线如下:
若使用PyCharm等编译器可通过路径进行筛选:

如果想将某个项目版本回滚到某个版本(保险起见,在回滚前可先使用
checkout检出到该版本,确定该版本是否为要回滚的版本),若采用reset,其他项目也可能会被回滚;因此推荐使用revert,使用方法可参考git回滚reset、revert、四种模式,超级详细_git revert-CSDN博客。-
reset:将当前分支的HEAD指针移动到指定提交,可选是否保留工作区和暂存区的更改,会删除提交历史 -
revert:创建一个新的提交,撤销指定提交的更改(相当于“反向操作”),不会删除提交历史
-
-
若多个项目之间相关,如果修改其中一个项目,另外的项目也必须做出相应的更改,当然此时也可采取第一种情况的操作,但是由于多个项目提交信息在同一条历史线上,且一次提交可能包含多个项目的修改,导致各项目提交历史混杂、检索效率低、回滚与问题排查复杂度高。为方便起见,需要对上面的方案进行优化。优化出发点是将不同项目的提交历史分离开,因此可以为每一个项目单独创建一个分支,每个分支只单独存储对应的项目代码。更新项目时,只在对应的分支下更新,更新完毕后在此分支提交,再推送到远程仓库对应的分支下。另外,使用一般方法
git checkout -b <新分支名称>创建并切换项目分支是基于当前分支的最新提交作为父节点,但这里为每一个项目创建分支需要创建完全为空的分支,才能保证提交历史独立,因此需要先执行git checkout --orphan <新分支名称>,这行命令创建的新分支没有父节点(孤立分支),即没有历史提交记录,但会把原分支的内容保留(会被标记为“已暂存”);此时分支内容不为空,因此需要再执行git rm -rf .将这些已暂存的文件删除(文件夹会保留,但无伤大雅);此时如果用git branch命令是看不见当前分支的名字的(此时若切换回其他分支,刚才所做的操作无效),只有进行第一次提交之后,才能算是成功创建一个空分支,流程大略如下:-
初始化仓库,并创建项目A、提交项目A内容(使用git命令行或编译器都可),初始化仓库后在本地创建的分支默认名是master,根据需要自行选择是否重命名
-
打开git命令行,先执行
git checkout --orphan ProjectB创建孤立分支(此操作目前不知道如何用PyCharm编译器替代完成),后执行git rm -rf .删除其他文件(后续会使用PyCharm编译器执行此操作,当然直接手动把文件删除也是可以的),然后创建项目B(项目B也可在创建孤立分支前创建),初始化项目内容
-
创建项目C,执行
git checkout --orphan ProjectC创建项目C的孤立分支,再通过PyCharm删除暂存区中的原分支的内容(相当于执行git rm -rf .),再初始化项目内容
-
将三个分支分别推送到远程仓库对应的分支下(远程仓库也是三个分支),对项目更新后也是推送到对应的分支下
-
对项目进行修改后历史提交线如下:三个项目提交历史线各自独立,目的达到。当然也可基于某个项目的某次提交进行新分支的创建(非孤立分支)、合并、变基、删除等操作协助开发

-
注意:
-
如果多个项目不在同一个父目录下也可,因为不同项目所属分支不同,互相不受影响(但要注意不要搞混上游分支),只需多个项目关联同一个远程库即可(第一种方法不同项目必须在同一个目录下,因为不同项目的上游分支是同一个)
-
若项目在同一父级目录下,此时切换分支,只有当前分支下的项目可见,但有时候需要对两个项目进行编辑,来回切换分支太过繁琐,因此可以使用worktree来实现同时在不同分支工作。首先执行
git worktree add <项目存放路径> <要切换分支名称>在该路径下创建该分支的工作区,新建工作区和主工作区之间分支切换、提交等不会相互影响。可以使用git worktree list来列出所有工作树,第一个为主工作树,其余为链接工作树;不同工作树之间分支的切换或新建不能重复。如果某工作树使命完成,可以使用git worktree remove <工作区>将其删除。使用举例:
-
一个项目一个分支,不合并(一旦合并,不同分支提交历史难以避免出现交叉,不符合初衷)
-
-
管理项目其实并没有固定的方法,上述两种方法的使用也没有严格的区分界限,按照自己的习惯能够备份项目代码即可。个人建议小型、数量多、各自独立且在同一个父级目录下的项目,用方法一,其余情况选用方法二。
参考教程
原本只是打算梳理一下代码上云的流程,记一些笔记自己以后参考,但是由于对Git的使用一知半解,自己又想搞清楚每一个步骤,所以到后来资料越搜越多,理解也慢慢加深,最后索性将所学整理成如上内容分享给大家,本人作为Git初级使用者,如有错误之处还请读者指正。
PS:以上内容都是管理个人项目,后续会总结一下通过Git进行团队协作的流程,先在此立下flag。
文已发布:https://blog.csdn.net/m0_56450064/article/details/148387011
更多推荐
所有评论(0)