将本地文件推送到GitHub上

2022-05-04 50点热度 0人点赞 0条评论

同时发布于「破壳AI个人网站」、微信公众号:「破壳Ai」。

将本地文件推送到GitHub上

在安装和配置好 Git Bash 后,将文件或者修改后的文件推送到 GitHub上,分为以下几种情况:

一、本地不存在该仓库,而 GitHub 上已有该仓库

1、先在本地创建一个空的文件夹(如 Test ),用来放从 GitHub 上克隆下来的 repository。

【注】:将相应的项目克隆到本地,由于要克隆的项目已经自带有 .git 目录,所以无需进行 git init 来初始化。若是在本地新建的仓库项目,则需要 git init 进行初始化。

mkdir Test            # 为将要进行Git管理的项目建立新的文件夹
cd Test               # 进入新建的文件夹

2、再将 GitHub 上的项目 repository 克隆到本地

默认克隆 main 分支内容,执行 git clone 命令后我们会默认处于 main 分支下,同时系统会自动将 origin 设置成该远程仓库的标识符。

git clone https://github.com/username/hello-world.git   #将 GitHub 上的对应仓库克隆到本地

3、克隆到本地之后便可以在本地进行编辑修改,再推送到 GitHub 上即可。在本地编辑、查看与推送操作如下:

cd hello-world                  #进入到在GitHub上所创建的repository中,(已经拷贝到本地的)
touch README.md                 #创建README.md文件
vim README.md                   #编辑README.md文件
git status                      #查看仓库的状态,显示有无改动及添加新的内容,以便将其提交
git add README.md               #将README.md中修改的内容添加到暂存区
git commit -m "add README"      #将暂存区中的README.md文件进行提交保存,并添加注释(引号中的内容)
git log                         # 查看提交日志

git push                        #将本地仓库的更新,推送到GitHub上。使GitHub上的内容更新。
                   #因为该仓库是从GitHub上克隆下来的,所以默认已经建立上下游的联系,无需再将重复将其添加到上游的远端

二、本地已经存在该仓库,而 GitHub 上没有

1、首次将本地的仓库推送到远程(GitHub)仓库时。首先在 GitHub 上建立一个仓库,并将其设置为本地仓库的远程仓库。为了使 GitHub 上新建的仓库与其他仓库不混淆,使其与本地仓库有同样的名称。同时如果本地已经存在 README.md 文件时,Initialize this repository with a README 选项就不要勾选,以免与本地的 README.md 相冲突;如果本地仓库中没有 README.md 文件时,此时可以勾选该项。如下图

2、进入到本地仓库中,并用 git init 来对本地的仓库进行初始化

cd  Test          #进入到本地需要管理的项目目录中
git init          #初始化需要管理的目录,使其能够被 Git 进行管理

3、使用 git remote add 命令,来设置本地的远程仓库

执行git remote add命令之后,Git 会自动将 https://github.com/username/git-tutorial.git 远程仓库的名称设置为origin(标识符)

git remote add origin https://github.com/username/git-tutorial.git  #将其设置成本地的远程仓库

4、将所有改动的内容提交到暂存区并保存

git add .                        #把工作时的所有变化提交到暂存区,不包括删除的文件
git commit -m "Initial commit"   #保存变化,并添加注释

【注】:本地仓库的内容推送到远程仓库之前,必须要将本地仓库中的内容提交到相应的分支中,否则该分支的内容将不会被推送到远程仓库中,而只是在远程仓库中建立了相应的分支而已。

5、将当前分支下本地仓库中的内容推送至远程仓库中。分为两种情况:main 分支、其它子分支

(1)、将 main 分支的本地仓库内容推送到远程仓库中(此时该远程仓库中还没有 main 分支,只是一个空仓库)

git checkout master            #如果当前分支不是master,则首先切换到 master分支下。

git push -u origin master      #将本地仓库的master分支,推送到远程仓库的master分支中
                              #(注:只用于首次推送时将远端master设置为当前仓库的上游,以后再推送直接 git push即可)

【注】:执行以上操作后,当前分支的内容就会被推送给远程仓库 origin 的 master 分支。-u 参数可以在推送的同时,将 origin 仓库的master 分支设置为本地仓库当前分支的 upstream(上游)。添加了这个参数,将来运行git pull命令从远程仓库获取内容时,本地仓库的这个分支就可以直接从 origin 的master 分支获取内容,省去了另外添加参数的麻烦。若没有 -u 这个参数,则在后面的 git pull 时,就需要指明拉取的是那一条分支,如:git pull origin f03 ,表示拉取的是远程的 f03 分支:origin/f03

(2)、将本地的其它子分支推送至 main 以外的分支,如将本地的 feature-D 分支以同名的形式推送至远程仓库(此时远程仓库中并没有 feature-D 分支)

git checkout -b feature-D        #在本地新建feature-D分支,并切换到该分支下
git push -u origin feature-D     #将feature-D推送至GitHub上,并保持该分支名称不变

三、在本地和 GitHub 上都已经存在该仓库

1、在本地和远程的 GitHub 上都已经存在该仓库,则在本地和 GitHub 上都不需要再重新创建该仓库了。只需要先将本地和远程的仓库之间创建联系。将本地 GitHub 上的该远程仓库设置为本地仓库的远程端。

2、具体操作如下:

cd  Test
git remote add origin https://github.com/username/git-tutorial.git
git push -u origin --all

四、更新本地及远程仓库的分支

【注】:此时本地和远程上都已经有该仓库,只是其中有一个不是最新的

在多人同时开发,当本地仓库中的某一分支没有与远程仓库的该分支保持最新时,需要用 git pull 来获取最新的远程仓库分支。在本地进行修改之后可以用 git push 推送到 GitHub 上。

获取最新的远程仓库分支。远程仓库的 feature-D 分支是最新的状态,将本地的 feature-D 分支更新到这个最新的状态,此时 pull 后面要加上拉取分支的名称,来明确指定拉取哪个分支。

在本地仓库修改之后提交到远程仓库中,会根据使用的工具不同有不同的处理方式。在此主要考虑两个同步方式:(1) GitBash 命令行的方式, (2) TortoiseGit 图形界面的方式。这两种方式的主要区别在于提交命令 git commit 前的操作。

(1) 使用 GitBash 命令行时,本地的修改在 git commit 前必须要先将所有的改动 git add 到追踪中去,否则后续提交的将无法同步到远端

(2) 使用 TortoiseGit 图形界面时,只需要在首次增加新文件时需要 git add 命令来添加到版本追踪去,若后续再出现改动,直接 git commit 提交即可,无需再添加到版本控制中。

订阅博客,及时获取文章更新邮件通知

close

订阅博客,及时获取文章更新邮件通知

古月弧

保持专注,持续进步。

文章评论