使用github第一步是注册github账号, github官网地址:https://github.com/
官网资料安装包等下载链接:https://git-scm.com/downloads
免费用户只能建公共仓库
创建新仓库页面详解:
仓库的页面描述:
在 GitHub,“fork”指的是你自己的空间中创建的项目副本,这个副本允许你以一种更开放的方式对其进行修改
在linux系统上安装git:以centos版本为例子
使用yum命令:
先安装依赖:yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
在使用
yum -y install git 目前最高版本是1.8
使用前配置:
git config --global user.name "这里输入你在GitHub的账户名"
git config --global user.email "这里输入你在GitHub的注册邮箱名"
注意:git config –global 参数,有了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然你也可以对某个仓库指定的不同的用户名和邮箱
查看所有配置信息:git config --list/git config -l 可以查看上面命令是否配置了账户 邮箱
目录中初始化仓库
创建文件夹:mkdir /home/user/my_project
进入文件夹中:cd /home/user/my_project
git init 命令将创建一个名为 .git 的子目录(默认情况下是隐藏文件夹),这个子目录含有你初始化的 Git 仓库中所有的必须文件,这些文件是Git 仓库的骨干。 但是,在这个时候,我们仅仅是做了一个初始化的操作,你的项目里的文件还没有被跟踪。
Git 的核心组成部分:
1.objects 目录存储所有数据内容;2.refs 目录存储指向数据(分支、远程仓库和标签等)
的提交对象的指针; 3.HEAD 文件指向目前被检出的分支;4.index 文件保存暂存区信息
其他部分:
description :仅供 GitWeb 程序使用,我们无需关心。
config :包含项目特有的配置选项。
info目录 :包含一个全局性排除(global exclude)文件 , 用以放置那些不希望被记录 在.gitignore文件中的忽略模式(ignored patterns)。
hooks 目录:包含客户端或服务端的钩子脚本( Git钩子是在Git仓库中特定事件发生时自动运行 的脚本)
跟踪文件
echo 'My Project' > README 将输出重定向到文件
用 git status 命令查看哪些文件处于什么状态;看到新建的 README 文件出现在 Untracked files 下面。 未跟踪的文件意味着 Git 在之前的快照(提交)中没有这些文件 。
用命令 git add 开始跟踪,git add 命令使用文件或目录的路径作为参数;如果参
数是目录的路径,该命令将递归地跟踪该目录下的所有文件。
在 Changes to be committed 这行下面的,就说明是已暂存状态。看到 README 文件已被跟踪,并处于暂存状态。
git status -s / git status --short 命令,新添加的未跟踪文件前面有 ?? 标记,新添加到暂存区中的文件前面有 A 标记,修改过的文件前面有 M 标记。
查看已暂存的将要添加到下次提交里的内容,可以用 git diff --staged 命令。 这条命令将比对已暂存文件与最后一次提交的文件差异:
查看尚未暂存的文件更新了哪些部分,不加参数直接输入 git diff
提交命令git commit:
要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除(确切地说,是从暂存区域移除),然后提交。可以用 git rm 命令完成此项工作,并连带从工作目录中删除指定的文件,这样以后就不会出现在未跟踪文件清单中了。
如果要删除之前修改过或已经放到暂存区的文件,则必须使用强制删除选项 -f(译注:即 force 的首字母)。
把文件从 Git 仓库中删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录
中.即是让文件保留在磁盘,但是并不想让 Git 继续跟踪,使用 --cached 。
文件重命名:git mv 原文件名 改名后文件名
查看提交历史
git log 会按时间先后顺序列出所有的提交,最近的更新排在最上面。 正如你所看到的,这个命令会列出每个提交的 SHA-1 校验和、作者的名字和电子邮件地址、提交时间以及提交说明。
一个比较有用的选项是 -p 或 --patch ,它会显示每次提交所引入的差异(按 补丁 的格式输出)。 你也可以限制显示的日志条目数量,例如使用 -1选项来只显示最近的1次提交:
git reset HEAD 文件名 来取消暂存。 所以,我们可以这样来取消暂存 CONTRIBUTING.md 文 件:
撤消之前所做的修改git checkout -- 文件名
远程仓库服务器
如果想查看你已经配置的远程仓库服务器,可以运行 git remote 命令。 它会列出你指定的每一个远程服务器的简写。 如果你已经克隆了自己的仓库,那么至少应该能看到 origin ——这是 Git 给你克隆的仓库服务器的默认名字:
git remote -v 列出所有仓库信息
添加远程仓库
git remote add <shortname简称短名> <url> 添加一个新的远程 Git 仓库,同时指定一个方便
使用的简写:
git fetch 命令与一个远程的仓库交互,并且将远程仓库中有但是在当前仓库的没有的所有信息拉取下来然后存储在你本地数据库。
拉取 Paul 的仓库,在命令行中使用字符串 pb 来代替整个 URL
从远程仓库中抓取与拉取
从远程仓库中获得数据git fetch 短名称/简称/URL,只会将数据下载到你的本地仓库——它并不会自动合并或修改你当前的工作
默认情况下,git clone 命令会自动设置本地 master 分支跟踪克隆的远程仓库的 master 分支(或其它名字的默认分支)。 运行 git pull 通常会从最初克隆的服务器上抓取数据并自动尝试合并到当前所在的分支。git pull 命令基本上就是 git fetch 和 git merge 命令的组合体,Git 从你指定的远程仓库中抓取内容,然后马上尝试将其合并进你所在的分支中。
这个命令很简单:git push <remote简称> <branch分支名>。 当你想要将 master 分支推送到 origin 服务器时(再次说明,克隆时通常会自动帮你设置好那两个名字), 那么运行这个命令就可以将你所做的备份到服务器:git push origin master
查看某个远程仓库
git remote show <remote简称>
git remote 命令是一个是你远程仓库记录的管理工具。 它允许你将一个长的 URL 保存成一个简写的句柄,例如 origin ,这样你就可以不用每次都输入他们了。 你可以有多个这样的句柄,git remote 可以用来添加,修改,及删除它们。
它同样会列出远程仓库的 URL 与跟踪分支的信息。 这些信息非常有用,它告诉你正处于 master 分支,并且如果运行 git pull, 就会抓取所有的远程引用,然后将远程 master 分支合并到本地 master 分支。 它也会列出拉取到的所有远程引用。
远程仓库的重命名与移除
git remote rename 来修改一个远程仓库的简写名。
例如,想要将 pb 重命名为 paul
移除一个远程仓库命令:git remote remove 仓库简称 / git remote rm 仓库简称
如果不想每次都输入完整的 Git 命令,可以通过 git config 文件来轻松地为每一个命令设置一个别名:
$ git config --global alias.co checkout 当要输入 git checkout 时,只需要输入 git co
$ git config --global alias.br branch
$ git config --global alias.ci commit 当要输入 git commit 时,只需要输入 git ci
$ git config --global alias.st status