Git与GitHub的简单了解(1)

mac2022-06-30  99

目录

Git与GitHub 1. 前言2. Git的基本操作

本文参考书籍GitHub入门与实践整理所得,另外可以查阅Git Community Book中文版本以及外文版本资料链接

Git与GitHub

1. 前言

GitHub:为开发者提供Git仓库的托管服务

在Git中,开发者将源代码存入名为“Git仓库”的资料库中并加以使用,而GitHub则是在网络上提供Git仓库的一项服务。也就是说,GitHub上公开的软件源代码全部都由Git进行管理。

​ Pull Request指开发者在本地对源代码进行更改后,向GitHub中托管的Git仓库请求合并的功能。


​ 版本管理在开发一款软件中占据着非常重要的低位,其必不可少的原因在于:可以记录一款软件添加或更改源代码的过程,回滚到特定的阶段,恢复误删除的文件等等..

​ 常规的版本管理分为集中型和分散型:

集中型

​ 以Subversion为代表,其将仓库集中存放在服务器之中,具有便于管理的优点,但一旦开发者所处的环境不能连接服务器时,就无法获取最新的源代码,开发亦无法进行。

分散型

​ 以Git为代表的分散型如下:GitHub将仓库Fork给每一个用户,Fork就是将 GitHub 的某个特定仓库复制到 自己的账户下。 Fork 出的仓库与原仓库是两个不同的仓库,开发者可以 随意编辑

​ 分散型具有多个仓库,相对较复杂,但因为可以Fork到本地的开发环境下,所以开发者不必连接远程仓库即可进行开发。

导入与安装Git :笔者为windows下的系统,下载链接如下:链接 详细安装过程若下:安装 也可以参看书籍中的章节介绍-->“GitHub入门与实践”

1.1 必要设置

​ 注册github账号,安装好git后,首先应该设置SSH Key SSH 原理和基本使用

加密传输的算法有好多,git可使用rsa,rsa要解决的一个核心问题是,如何使用一对特定的数字,使其中一个数字可以用来加密,而另外一个数字可以用来解密。这两个数字就是你在使用git和github的时候所遇到的public key也就是公钥以及private key私钥。

其中,公钥就是那个用来加密的数字,这也就是为什么你在本机生成了公钥之后,要上传到github的原因。从github发回来的,用那公钥加密过的数据,可以用你本地的私钥来还原。

如果你的key丢失了,不管是公钥还是私钥,丢失一个都不能用了,解决方法也很简单,重新再生成一次,然后在github.com里再设置一次就行

$ ssh-keygen -t rsa -C "your_email@example.com" Generating public/private rsa key pair. Enter file in which to save the key (/Users/your_user_directory/.ssh/id_rsa): 按回车键 Enter passphrase (empty for no passphrase): 输入密码 Enter same passphrase again: 再次输入密码

​ “your_email@example.com”的部分修改为创建账户时所使用的邮箱地址,成功后会显示:

Your identification has been saved in /Users/your_user_directory/.ssh/id_rsa. Your public key has been saved in /Users/your_user_directory/.ssh/id_rsa.pub. The key fingerprint is: fingerprint值 your_email@example.com The key's randomart image is: +--[ RSA 2048]----+ | .+ + | | = o O . | 略

​ id_rsa 文件是私有密钥, id_rsa.pub 是公开密钥 。

2. Git的基本操作

git init ---- 初始化仓库 $ mkdir git-tutorial $ cd git-tutorial $ git init

​ 上述代码新建了一个名为git-tutorial的文件夹,通过git init语句进行初始化操作,执行后,git-tutorial目录下生成.git目录:

Initialized empty Git repository in /Users/hirocaster/github/github-book /git-tutorial/.git/

​ 这个目录里存储着管理当前目录所需要的仓库数据,也被称为:附属于该仓库的工作树。因此若希望将文件恢复到原先的状态,可以从仓库中调取之前的快照,在工作树中打开。

git status ---- 查看仓库的状态 $ git status # On branch master # # Initial commit # nothing to commit (create/copy files and use "git add" to track)

​ 结果显示了我们当前正处于 master 分支下。(分支 会在之后讲到)还显示了没有可提交的内容。

​ 因此,我们建立 README.md 文件作为管理对 象,为第一次提交做前期准备 。

$ touch README.md $ git status # On branch master # # Initial commit ## Untracked files:# (use "git add <file>..." to include in what will be committed)# # README.md nothing added to commit but untracked files present (use "git add" to track)

​ 可以看到在 Untracked files 中显示了 README.md 文件 。

git add ----- 向暂存区中添加文件

​ 若只是在Git仓库的工作树中创建文件,该文件并不会被记入Git仓库的版本管理对象当中,用git status查看会显示在Untracked files里。如果想让文件成为Git仓库的管理对象,就需要git add命令将其加入暂存区(Stage或Index中)。

$ git add README.md $ git status # On branch master # # Initial commit # # Changes to be committed: # (use "git rm --cached <file>..." to unstage) # # new file: README.md #

​ 可以看到, README.md 文件显示在 Changes to be committed 中了。

git commit ---- 保存仓库的历史记录

​ git commit命令可以将当前暂存区中的文件实际保存到仓库的历史记录中,通过这些历史记录我们可以在工作树中复原文件。

记录一行的提交信息

$ git commit -m "First commit" [master (root-commit) 9f129ba] First commit 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 README.md

-m参数后的“First commit”称作提交信息。如果在编辑器启动后想中止提交,请将提交信息留空并直接关闭编辑器,随后提交就会被中止。

git log ----- 查看提交日志

​ git log命令可以查看以往仓库中提交的日志 ,可以查看什么人在什么时候进行了提交或合并,以及操作前后有怎样的差别 。

$ git log commit 9f129bae19b2c82fb4e98cde5890e52a6c546922 Author: hirocaster <hohtsuka@gmail.com> Date: Sun May 5 16:06:49 2013 +0900 First commit

​ Author 栏中显示我们给 Git 设置的用户名和邮箱地址。 Date 栏中显示提交执行的日期和时间。再往下就是该提交的提交信息 。

只显示提交信息的第一行

​ 如果只想让程序显示第一行简述信息(date行略去),可以在 git log命令后加上 --pretty=short

$ git log --pretty=short commit 9f129bae19b2c82fb4e98cde5890e52a6c546922 Author: hirocaster <hohtsuka@gmail.com> First commit

仅显示指定目录、文件和日志

​ 只要在 git log命令后加上目录名,便会只显示该目录下的日志 ,若加的是文件名,就会只显示与该文件相关的日志。

$ git log README.md

显示文件的改动

​ 如果想查看提交所带来的改动,可以加上 -p参数,文件的前后差别就会显示在提交信息之后 :

$ git log -p git diff ---- 查看更改前后的差别

​ git diff命令可以查看工作树、暂存区、最新提交之间的差别 ,我们现在向README.md文件中加入了一行:

# Git教程

​ 执行 git diff命令,查看当前工作树与暂存区的差别 :

$ git diff diff --git a/README.md b/README.md index e69de29..cb5dc9f 100644 --- a/README.md +++ b/README.md @@ -0,0 +1 @@ +# Git教程

​ 解释一下显示的内容。“+”号标出的是新添加的行,被删除的行则用“-”号标出。我们可以看到,这次只添加了一行。 在执行 git commit命令之前先执行git diff HEAD命令,查看本次提交与上次提交之间有什么差别,等 确认完毕后再进行提交。这里的 HEAD 是指向当前分支中最新一次提交的指针。

$ git diff HEAD diff --git a/README.md b/README.md index e69de29..cb5dc9f 100644 --- a/README.md +++ b/README.md @@ -0,0 +1 @@ +# Git教程

转载于:https://www.cnblogs.com/SrtFrmGNU/p/7390962.html

最新回复(0)