Search This Blog

Showing posts with label GitHub. Show all posts
Showing posts with label GitHub. Show all posts

Git 与 GitHub (二)

正文

本篇博文主要介绍如下的功能
  • 从 GitHub 上 clone 项目
  • 使用 .gitignore 排除若干不需要跟踪的文件
第一个功能通过如下命令即可实现
git clone https://github.com/zouyu4524/Python-Study
以上语句将从 GitHub 上 clone 指定的 Repository 到本地当前路径下

第二个同样是非常实用的功能之一,例如在本地进行编译或者修改文件产生的一些临时文件或者日志文件不需要上传,又或者是一些隐私文件,例如密钥等不便于上传到 GitHub 时,可以通过添加 .gitignore 文件来排除不想上传的文件。.gitignore 文件一般具有如下的形式
# Python:
*.pyc

# IDE:
.idea/*
即只需要指明排除的文件名称即可(支持正则表达式),例如上面的例子表明排除文件后缀为 .pyc 的文件以及 .idea 目录下的所有文件。
如果不下心把不需要跟踪的文件已经提交(add)到了暂存区,或者甚至已经commit,再或者已经push到了GitHub,此时想删除该文件怎么办呢?可以通过如下的命令实现
git rm --cached .idea/vcs.xml
其中, .idea/vcs.xml 是之前误操作被跟踪的文件。通过此命令实际上完成了一个删除操作,再次查看改动时,git会给出如下的提示
D:\Github\Python-Study>git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
  (use "git reset HEAD ..." to unstage)

        deleted:    .idea/vcs.xml
此后,再commit、push即可完成对该文件在本地及远程(GitHub)的Repository中的删除。

参考


Git 与 GitHub (一)

背景

Git是目前最优秀的分布式版本控制系统,而GitHub是一个通过Git进行版本控制的软件源代码托管服务。作为一个个人用户,需求如下
  • 将已有的本地项目上传至GitHub进行保管
本文正是介绍如何快速地实现需求。

安装与注册

首先,需要在本地安装Git客户端,以Windows为例,在Git下载Windows版本的Git客户端并默认安装即可。其次,为了使用GitHub提供的服务,需要注册一个GitHub账号。在Git客户端安装好以后以及GitHub注册以后,需要做的事情是建立本地与GitHub的安全连接(SSH),以便可以在本地通过命令行实现与GitHub的交互。具体的操作如下

设置本地Git

Git为分布式版本控制系统,所谓分布式就是你可以在任何机器上对同一份代码进行管理,那如何确定就是“你”呢?这就需要进行用户名和邮箱的设置了,在commit阶段用户名和邮箱就成为了提交者的标识。
  • 设置用户名
  • 设置邮箱
设置用户名如下
$ git config --global user.name "Mona Lisa"
设置邮箱如下
$ git config --global user.email "email@example.com"
以上命令中 --global 标识表示为全局(所有的Repository)设置用户名和邮箱。如果去除该标识,表示为当前的Repository设置用户名和邮箱。

本地生成密钥

在程序列表中找到Git Bash,打开后输入
$ ssh-keygen -t rsa -C "youremail@example.com"
其中 youremail@example.com 为GitHub的注册邮箱
然后一路回车,等待密钥生成。默认生成的密钥将会保存在 ~/.ssh 路径下,其中包括三个文件,分别是:id_rsaid_rsa.pub 其中,id_rsa为私钥,而id_rsa.pub是公钥,接下来我们需要的是id_rsa.pub

在GitHub中添加公钥

本地生成了公钥以后,在GitHub中添加相应的公钥即可实现本地与GitHub的安全连接。如下图所示:选择Setting -> SSH and GPG keys -> New SSH Key -> 添加Title描述(可任意填写) -> 复制公钥中的内容到Key选框 -> Add SSH Key

按照以上步骤生成了SSH 密钥以后就可以实现本地与GitHub的安全连接了。

快速上手

建立安全连接为将本地的项目上传至GitHub,步骤如下
  • 在GitHub上创建一个空的Repository
  • 本地项目关联至GitHub所创建的Repository
第一步,如图所示,创建Repository。New Repository -> 添加 Repository 名称 -> 添加Repository描述(可选) -> Create Repository。
主要注意的是,在创建该Repository的时候最好不要添加 .gitignore 或者 LICENSE文件,避免在导入本地项目时发生冲突。(即创建一个“干净”的空库)
创建好以后,会跳转到如下界面,GitHub为新创建的Repository提供了四种完善的方法:分别是 ① 通过GitHub桌面程序;② 通过在本地创建新的Repository,然后将其推送至该Repository; ③ 将本地以后的Repository推送至该Repository; ④ 从其他的非Git库中导入。这里,假设本地的项目此前并未创建过Repository,那么我们遵循第二个方法进行操作。
第二步,将本地项目关联至刚刚创建的Repository,方法如下:在cmd窗口中输入以下命令:
git init
git add *
git commit -m "first commit"
git remote add origin https://github.com/zouyu4524/firstRepo.git
git push -u origin master
注意到,前三句是在本地当前项目目录中创建一个本地Repository,并且将所有的文件添加到暂存区然后提交至HEAD,简而言之就是前三句话实现了将本地当前目录下的所有文件转移至了本地的Repository。
第四句的作用在于将本地Repository与GitHub上远程的Repository关联起来。其中 origin 是远程Repository的别名,而这句话的含义就是为远程Repository (https://github.com/zouyu4524/firstRepo.git)添加到 origin 中,这样一来在本地git中使用 origin 时就可以等效为远程的Repository。
第五句实现了将本地Repository推送至GitHub远程Repository。其中正是用 origin 指代了远程的Repository,后面 master 表示将本地内容推送至远程Repository的 master 分支。至此,我们的目标就实现了。

参考