zoukankan      html  css  js  c++  java
  • GItHub操作

    一。概念

    博文学习地址:https://blog.csdn.net/qq_36667170/article/details/79085301

    Github服务器上有一个主仓库,可以用来存储我们自己的代码,免费的是所有人都可以看到我们的代码。我们创建了主仓库后,就可以在我们的电脑上创建分支,之后你就可以在电脑上完成自己的代码,写完之后直接同步在电脑的分支,当你认为可以上传的自己的主仓库时,就可以申请更新,当通过审核的时候,你代码就出现在了自己的主仓库中,这样全世界的程序员都可以查看你的代码。

    二。创建自己的仓库

    https://github.com/点击链接进入github的官网,如果看英文有障碍,可以翻译成中文,首先注册一个账号,注册的过程就不多说了,直接但以往的习惯进行就OK.在登陆自己的GitHub账号之后,在网页右上角的小加号是用来创建自己的库的按钮,之后的步骤将网页翻译成中文之后,按提示进行创建自己的库即可。

    三。下载一个与自己电脑操作系统匹配的Git Bash.安装是默认安装即可。

    安装之后会显示三个东西

    - Git CMD: 
      Git中的Bash是基于CMD的,在CMD的基础上增添一些新的命令与功能。所以建议在使用的时候,用Bash更加方便(原网址)。 
    - Git GUI: 
      其次就是Git GUI,Git GUI是Git Bash的替代品,他为Windows用户提供了更简便易懂的图形界面。(但是相比GitHub Desktop这个桌面版客户端) 
    - Git Bash: 
      最后是Git Bash,Git Bash是命令行操作。

    四。基本操作

    1.登录

    $ git config --global user.email "1580542048@qq.com"

    $ git config --global user.name "Q_si_bian"

    注意当你下github上修改了你的用户名时会遇到一些小问题

    2.本地文件的基本操作

    使用cd命令进入到目录中时,在Git-Bash中应该使用斜线”/”, 而不是反斜线””

     新建文件夹:    mkdir 文件名

    删除文件:rm 文件名.文件类型

    3.创建本地仓库

    现在我只需要在Git Bash里先进入这个文件夹(想要成为本季仓库的文件),确定已经进入了,我要把它变成本地仓库,需要输入以下命令行

    $ git init

    然后他就会告诉你建立成功了,这时候你的本地文件夹就出现了一个隐藏的.git文件夹 (。-`ω´-)千万不要乱删,你如果看他烦你就设置一下不现实隐藏文件就OK。

    可以在里面创建文件了:local.txt

    添加记录:git add local.txt

    你也可能添加了很多文件:

    git add -A 提交所有变化 
    git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new) 
    git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件

    提交记录:$ git commit -m “修改注释”

    怎样看你修改了什么呢? 
    这时候就要输入                     $ git diff 文件名+类型         或 $cat 文件名

    4.本地仓库与远程仓库的操作

    当然使用过桌面版的应该知道,commit之后还有一个手动同步的步骤,在Git Bash中也是这样的。 

    在推到远程仓库之前需要配置SSH。参考:https://blog.csdn.net/qq_36667170/article/details/79094257

    我们刚才在步骤3中已经建立了本地仓库,那么现在只要在远程建一个仓库然后把他俩连接起来就OK。

    首先你要进入网页版github新建一个仓库。

    参考:https://blog.csdn.net/qq_36667170/article/details/79079750

    以下为简略步骤

     

    新建远程仓库名为:Lolita

    把上边绿框框切换到SSH,然后复制下边随便哪个框框的内容。在电脑上进入你建好本地仓库的文件夹右键点击Git Bash Here或者直接在Git Bash中输入命令行进入文件夹。 
    然后在Git Bash中输入

    $ git remote add origin +你复制的内容

    比如我输入$ git remote add origin git@github.com:Lolita-Sian/Lolita.git

    然后他不会有任何提示,但是如果你不确定操作成功没有,你可以再输一遍,这时候他会提示你刚才已经设置过了。

    或者说你输入git remote -v验证一下会出现你添加成功的远程仓库。

    $ git remote -v

    在这里说一下git remote add origin +你复制的内容,其实就是给本地仓库添加一个远程仓库,你复制的内容就是远程仓库地址,origin就是远程仓库的代称,你也可以取一个别的代称给他。

    如果你以后不想连接这个远程仓库了,只需要输入git remote remove +代称即可。比如我刚才添加的远程仓库代称是origin,那我就要写:

    git remote remove origin

    然后在Git Bash中输入如下命令进行内容同步

    $ git push -u 代称 master 
    如果刚才是git add remote origin +复制内容,就要写git push -u origin master 
    如果刚才是git add remote AAA +复制内容,就要写git push -u AAA master

     这时候你就可以把你本地仓库的东西推到远程仓库了,并且你commit的信息也会同步过去。由于远程库是空的,我们第一次推送master分支时,加上了 –u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令,只输入(如下)就OK。

    $ git push origin master

    可以去网页端查看

    还可以查看当前版本信息(也就是最近一个commit)

    $ git log

    也可以显示某个文件的版本历史,包括文件改名

    $ git log –follow 文件名.文件类型

    $ git whatchanged 文件名.文件类型

    显示所有提交过的用户,按提交次数排序

    $ git shortlog -sn

    显示指定文件是什么人在什么时间修改过

    $ git blame 文件名.文件类型

    5.如何克隆一个远程仓库

    现在我有一个叫000的远程仓库,并且里边有一个叫readme的文件。点击绿色按钮之后会弹出来。可以复制这一段(git@github.com:Lolita-Sian/000.git)。切换成HTTPS再复制也没影响。 

    然后在本地建好一个用于作为克隆的本地仓库的文件夹,在文件夹内右键-Git Bash Here。或者直接在Git Bash中进入。然后在Git Bash中输入

    $ git clone 加上你刚才复制的那一块

    例如我要输入$ git clone git@github.com:Lolita-Sian/000.git

    然后你打开你刚才选的本地文件夹,远程仓库的东西都在本地了

    6.远程仓库改变后如何更新本地仓库

      这一步很重要了,在团队合作中,你的队友修改了远程仓库之后,你如何确保自己的文件跟远程仓库一致呢,这就需要以下步骤了。 
      在你刚才init或者Clone的过程中,Git会自动在本地分支与远程分支之间,建立一种追踪关系(tracking)。比如,在git clone的时候,所有本地分支默认与远程主机的同名分支,建立追踪关系,也就是说,本地的master分支自动连接到远程的origin/master分支。 
      那么建立远程关系之后,如果你要取回远程文件,你只需要输入“ $ git pull origin”。

    $ git pull origin

    比如我现在跑到我的远程仓库修改了我的日记。我给日记加了一行测试。然后进行了pull。 

    这时候我打开我的本地日记,就发现加上来了。 

     另外补充一下。

    $ git status

      刚才提到了这个。status有什么作用呢。 
    - 上图中在fetch-merge中,可以提示你本地和远程的数据差异。如果你没有merge,status就会提示。 
    - 而在add-commit-push过程中,看下图。如果我修改了文件,没有add,status提示是红色的,add之后提示是绿色的,commit之后,工作树就是空的了。 

  • 相关阅读:
    D. Babaei and Birthday Cake--- Codeforces Round #343 (Div. 2)
    Vijos P1389婚礼上的小杉
    AIM Tech Round (Div. 2) C. Graph and String
    HDU 5627Clarke and MST
    bzoj 3332 旧试题
    codeforces 842C Ilya And The Tree
    codesforces 671D Roads in Yusland
    Travelling
    codeforces 606C Sorting Railway Cars
    codeforces 651C Watchmen
  • 原文地址:https://www.cnblogs.com/qingsheng/p/9498139.html
Copyright © 2011-2022 走看看