工作原理_Github基本概念

仓库Repository

  远程仓库Remote:        就是指保存在github网站里的代码;
  本地仓库:                     本地代码;
缓存区Index:                      是准备更新到本地仓库的一个中间阶段
工作区Workspace:            顾名思义

add就是用来建立跟踪,添加文件到缓存区

commit就是把文件缓存区的文件正式加到本地库中;例:git commit -m "备注"; 必须要-m 添加备注,不然会报错

push就是把本地库更新到远程库中; 例:git push origin master;  origin远程仓库名,master是分支

fork:   在github页面,点击fork按钮。将别人的仓库复制一份到自己的仓库。

pull:   在本地有项目的情况下和远程不同步的情况下 使用pull 拉取更新。相当于是从远程获取最新版本并merge到本地。
clone:将github中的仓库克隆到自己本地电脑中。在本地没有项目的时候 使用clone。git clone 就是将其他仓库克隆到本地 ,本地无需git init,直接git clone url

fetch:  在本地已有项目主分支的情况下还想下载项目的其他分支使用fetch。相当于是从远程获取最新到本地,不会自动merge。

merge:

branch 分支
master 只是这个repository中默认创建的第一个branch,就是你默认分支或者叫主分支的名称;

必要的手动操作:

1、在网页上查看远程仓库的地址,到时候git remote add origin URL 会用到,不一定要用origin,也可以用另外的名字。
2、在本地合适的路径下创建一个本地仓库的文件夹,并进入该文件夹输入git init命令进行初始化。

==============创建公钥私钥==========================

SSH服务其实方便用户将本地仓库代码更新到远程仓库上,只需要输入一条指令即可,并不需要繁琐的密码验证。

所以这涉及在本地创建公钥和私钥,并且将公钥发给github网站;

这样以后用本地电脑传代码都不需要手动输入账户密码了。


$ ssh-keygen -t rsa -C "huangyabin001@163.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/STAR/.ssh/id_rsa):
Created directory '/c/Users/STAR/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/STAR/.ssh/id_rsa.
Your public key has been saved in /c/Users/STAR/.ssh/id_rsa.pub.
The key fingerprint is:
xxxxxxx huangyabin001@163.com

回车,使用默认设置就好,无需设置密码。
如果顺利在用户主目录下会看到id_rsa和id_rsa.pub两个文件,其中id_rsa是私钥,不可泄露出去,而id_rsa.pub是公钥,可以公开。

登陆GitHub,打开Account settings,SSH Keys页面,并点击Add SH Key,添加SSH Key,Title可以自由定义,
Key文本框中就是id_rsa.pub文件的内容,直接复制即可。

=================================================

如果远程仓库做了修改,如何更新到本地?

从远程获取最新版本到本地:

  1)在本地创建新temp分支的办法,将远程origin仓库的master分支代码下载到本地temp分支:git fetch origin master:temp;

  2)接第1步,也可以使用 git fetch origin master;

  3)使用命令:git diff temp;用来比较本地代码与刚从远程下载下来的代码的区别;

  4)合并temp分支到本地的master分支;git merge temp

  5)删除temp分支:git branch -d temp,如果该分支没有merge到本地,那么该分支就会报错,可以添加-d参数来强制删除;

==================================================

标签:

标签的意义:

标签是版本库的一个快照;

例如:遇到需要上周一那个版本,版本号是V1.2,按照v1.2查找commit就行;如果查找commit号的话,一串乱七八糟的数字不好找;

tag是让人容易记住的有意义的名字,它跟某个commit绑定在一起;

标签是和具体一个commit挂钩的,如果这个commit既出现在master分支上,又出现再dev分支上,在这两个分支上都可以看到标签;

 

操作过程:

切换到需要打标签的分支上:git branch;git checkout <branchname>;

打标签:git tag <name>;

查看标签:git tag;

默认标签是打在最新commit上的。如果忘记打标签的话,找到历史提交的commit id,然后打上;

查看标签的信息:git show <tagename>;

如果标签打错了,可以删除:git tag -d v0.1

因为创建的标签只在本地,不会推送到远程,删除错误的标签比较容易;

如果要推送某个标签到远程,使用命令 git push origin <tagname>;

一次性推送全部尚未推送到远程的本地标签:git push origin --tags;

如果标签已经推送到远程,要删除远程标签的话,就麻烦一些,要先本地删除,再从远程删除,命令也是用push的方法;

原文地址:https://www.cnblogs.com/grooovvve/p/10741595.html