git从本地到远程

1. 版本控制与仓库

当我们个人进行开发的时候,有时候我们希望能够看到自己在什么时候对项目进行了更改,并且希望能够回退到某一个版本。
当一组人进行开发的时候,我们希望能够协同工作,并且知道是谁对代码做了何种修改,能够知道修改历史并且进行回退。

git以及代码仓库就是帮我们做这些事的。
git是一门语言,仓库是我们存储代码的地方。

仓库分为本地仓库和远端仓库。本地仓库是指在你的电脑上存放 .git文件的那个文件夹,远端仓库是指你在GitHub或者码云等平台上创建的仓库。

具体语法有本地仓库语法、远程仓库语法、分支管理语法等,可查看这个链接,可以当做语法字典。

2. 如何创建一个本地仓库并连接到远端仓库
  • 本地

    • 在本地需要存储项目的文件夹执行: git init

    • 执行配置:

        git config --global user.name "your name"
        git config --global user.email "your email" 
      

      这样配置之后使得在提交修改之后可以看到是谁做的修改。

    • 添加所有文件

        git add .
      

      这条语句可以将没被仓库关注的文件添加到关注,没被关注的文件的修改历史是无法被记录的。

    • 在进行修改之后,执行

         git commit -m "description of your modification"
      

      引号之内的内容是对本次提交做一个说明,以便在其他人查看的时候知道做了什么修改,这个说明很重要,要写清楚。

    • 全程可以通过git status 查看分支状态
      运行命令git status之后,对于修改过的文件可以看到提示,未添加的文件也可以看到提示。

    • 通过git log查看修改历史
      运行git log命令可以查看项目的修改历史

    • 通过git checkout回到之前版本

         git checkout . 
      

      可以回退到最后提交的那个版本。其他用法可以参考之前语法的链接。

  • 连接远程
    假设已经创建好远程仓库,并且该仓库的链接为URL。

    • 设置远程仓库地址

      git remote add origin URL
      

      我们的第一步是要将本地仓库和远端仓库关联起来,命令中的origin是我们通常给远程仓库的名字,代指后面的URL。

    • 从远程仓库同步信息

        git pull -r origin master 
      

      远端仓库可能存在很多本地仓库没有的文件,所以我们的第一步是要使得本地仓库跟远端的项目同步,在最新的结果上更改。如果是小组合作,建议在每一次新的更改之前都拉取一下,以防他人做了新的更改。
      第一次需要使用以上写法,之后可以直接使用:

        git pull
      

      如果本地并没有文件,也可以使用

        git clone URL
      

      直接将远端仓库复制到本地。

    • 向远程仓库推送本地文件
      同步完成之后我们就可以将仓库中我们修改的文件推送到远端仓库了。要注意,这里只会推送我们提交到本地仓库的文件,所以我们在每次推送之前,如果不确定所有修改都以提交到本地仓库的话,最好执行:

        	git status     —— 查看是否有文件未加入仓库或有修改未提交
        	git add .       —— 将所有的文件都添加到仓库
        	git commit -m "message"   ——将修改提交到仓库
      

      在执行外这些步骤之后,就可以执行:

        	git push -u origin master
      

      把本地仓库的所有内容推送到远端仓库上,第一次向远端仓库推送时需要-u,其中master是默认的分支也就是主分支,之后再次提交到远程库就不需要-u,直接使用:

        	git push
      

至此,就完成了一次本地到远端的连接,可以查看远程仓库,能够发现本地文件已经推送过去了。

3. 本地仓库与远端仓库的关系

在git的使用过程中,对于远端仓库和本地仓库的关系时长搞混,可能会有以下问题:

  • 本地是否只能存在一个仓库?
  • 同一个远端仓库可否对应不同的本地仓库?
  • 同一个本地仓库可否推送到两个不同的远端仓库?

解答如下:

  1. 同一个本地仓库可以连接到多个远端仓库,这样的话在操作的时候,比如向远端推送时,要注明推送到哪个远端仓库。已验证,是可以的。比如维护一份代码同时到github 和 Gitee,详细做法看这里

    2.同一远端仓库可以连接到多个本地仓库,每个本地仓库都需要将该远端仓库跟踪。已验证,是可以的。要注意的是,当第二个本地仓库需要往同一远端仓库推送时,在设置分支跟踪之前,一定要先拉取远端的文件,否则推送时会有无法推送的问题)

4. git为什么需要分支?

分支的主要功能是实现版本控制,能够对我们所作的修改及时进行回退,或者在同一个基础上做不同的版本。那么问题来了,我们如果是自己的仓库,没有和别人合作,也需要使用分支吗?答案是肯定的,建议无论是与别人合作,还是自己开发,origin主分支一定是用来存档稳定版本的,在我们做新的变更的时候,一定要在新的分支上来做,这样当我们的开发出现问题的时候,能够及时的回退,可以节省很多工作量。

5. 本地分支和远程分支有什么区别?

其实本地和远程的关系类似于,本地文件夹和百度网盘的关系。只不过百度网盘是可视化的操作,且没有版本控制。

本地分支和远程分支就类似于本地文件和远端副本,称为“分支”其实是为了突出版本控制的作用,本质上就是副本。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值