Github

Github 是现在非常流行的主流版本控制软件,它依托Git并提供代码仓储以及程序员社交服务。

下面介绍其最基本的使用方法。

使用说明

配置

  • 配置用户信息
git config --global user.name "John Doe"
git config --global user.email johndoe@example.com

如果用了 –global 选项,则所有的项目都会默认使用这里配置的用户信息。如果要在某个特定的项目中使用其他user.name或者user.email,只要去掉 –global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。

  • 要检查已有的配置信息,可以使用下列两种方式:
git config --list
git config user.name

基本指令集

在了解Git的基本指令集之前,我们先了解以下Git的整体设计理念【如下图】。
Git的架构设计
通过将新文件加入到索引 (index) 中来监控文件的版本及改动,之后提交到本地仓库中,由Push命令将本地版本推送到远程仓库中。

克隆现有仓库

如果想对某个开源项目出一份力,可以先把该项目的 Git 仓库复制一份出来,创建一个属于自己的分支。

  • 将该分支克隆到本地:
git clone https://github.com/userName/repositoryName.git

这会在当前目录下创建一个名为grit的目录,其中包含一个 .git 的目录,用于保存下载下来的所有版本记录,然后从中取出最新版本的文件拷贝。初次克隆某个仓库时,工作目录中的所有文件都属于已跟踪文件,且状态为未修改。

本地仓库操作

创建

  • 创建文件夹:创建本地文件夹用以存储及同步本地代码。
mkdir repos
cd repos
  • 初始化本地代码仓库:
git init

初始化后,在当前目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。

  • 将本地仓库指向Github托管的远程仓库:
git remote add origin https://github.com/userName/repositoryName.git

索引

如果当前目录下有几个文件想要纳入版本控制,需要先用 git add 命令告诉 Git 开始对这些文件进行跟踪,然后提交。将新文件添加入索引十分简单:

git add *.c
git add README

查看状态

工作目录下面的所有文件只有两种状态:已跟踪或未跟踪。已跟踪的文件是指原本就已纳入版本控制管理的文件,在上次快照中有它们的记录,工作一段时间后,它们的状态可能是未更新,已修改或者已放入暂存区。而既没有上次更新时的快照,也不在当前的暂存区域的文件都属于未跟踪文件。

git status
# Far more simplified output
git status -s
git status --short

该命令反应工作目录下文件在缓存区中的状态:

  1. 已追踪:更改或未更改。
  2. 未追踪。

若需更新工作目录在缓存区中的状态,则需重新使用 git add 将修改文件的最新版本缓存起来,否则提交远程仓库时所提交版本为旧版本,而非当前工作目录中的最新版本。

建立忽略列表

对于不希望被追踪缓存的文件,我们可以建立一个忽略列表 .gitignore 来进行管理。

# ignore me
*.[oa]
# ignore all .a and .o files excepts lib.a
!lib.a
# ignore all files end with ~
*~
*.tmp
# ignore all files in the doc/ directory
build/
# ignore .txt files in the doc/ directory
doc/*.txt
# ignore all .txt files in the doc/ directory
doc/**/*.txt

比对差异

实际上 git status 的显示比较简单,仅仅是列出了修改过的文件,如果要查看具体修改了什么地方,可以用 git diff 命令。

git diff
# compares your staged changes to the last commit:
git diff --staged
git diff --cached

提交更新至缓存区

将索引提交至本地仓库的缓存区由下述代码完成:

git status
git commit -m 'Some comment'
git commit -m "Some comment"

其中文本为版本的注解,用来说明你做了些什么。

从缓存区移除

要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除(确切地说,是从缓存区域移除),然后提交。

如果已将工作目录中某一文件手工删除且之前被缓存,则在执行 git status 后会提示:

Changes not staged for commit:
deleted: fileName.extensionName

这时需要从缓存区列表中删除该文件。

git rm fileName.extensionName
  • 若在删除前已做修改且提交至缓存区,则还需加上强制删除选项。
git rm -f fileName.extensionName
  • 若仅想将某文件从缓存区中移除追踪,但不删除该文件,则需加 –cached 选项。
git rm --cached fileName.extensionName

移动文件(重命名)

git mv file_from file_to

推送版本

将本地仓库所记录的代码版本推送至远程仓库:

git push

若出现如下类似的推送不成功:

error: 无法推送一些引用到 ‘https://github.com/userName/repositoryName.git
提示:更新被拒绝,因为您当前分支的最新提交落后于其对应的远程分支。
提示:再次推送前,先与远程变更合并(如 ‘git pull …’)。详见
提示:’git push –help’ 中的 ‘Note about fast-forwards’ 小节。

则应先从远程仓库获取数据后,合并到当前本地仓库中的当前分支。

git pull https://github.com/userName/repositoryName.git
git push

创建分支

创建代码某版本的一个分支:

git checkout -b branchName

查看当前分支:

git branch

推送当前分支:

git push -u origin branchName

转换到主干:

git checkout master

参考资料

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值