03 — 将本地文件推送到 GitHub上

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

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

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

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

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

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

默认克隆master分支内容,执行git clone命令后我们会默认处于master 分支下,同时系统会自动将 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、将当前分支下本地仓库中的内容推送至远程仓库中。分为两种情况:master分支、其它子分支

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

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

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

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

(2)、将本地的其它子分支推送至 master 以外的分支,如将本地的 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 提交即可,无需再添加到版本控制中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值