1.Git的安装
sudo apt-get install git
用的是linux(ubuntu)系统,安装非常简单,上面一条命令就够了。
2.初次运行的配置
Git 提供了一个叫做 git config 的工具(译注:实际是 git-config 命令,只不过可以通过 git 加一个名字来呼叫此命令。),专门用来配置或读取相应的工作环境变量。而正是由这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方:
(a) /etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 --system 选项,读写的就是这个文件。
(b) ~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 --global 选项,读写的就是这个文件。
(c) 当前项目的 Git 目录中的配置文件(也就是工作目录中的 .git/config 文件):这里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量。
git config --global user.name "John Doe" git config --global user.email johndoe@example.com
我用的是 --global 所以对应的是上面的(b)选项,在我的home目录下:
配置好了之后可以查看下配置信息,这条命令会显示所有配置
git config --list
3.本地版本库的基本操作:add与commit
下面就从一个空目录开始初始化版本库,这个版本库命名为“demo”,首先建立一个新的工作目录,进入该目录后,执行git init创建版本库。
mkdir demo cd demo git init
实际上,如果Git的版本是1.6.5或更新的版本,可以在git init命令的后面直接输入目录名称,自动完成目录的创建。
git init demo
从上面版本库初始化后的输出中,可以看到执行git init命令在工作区创建了隐藏目录.git。
接下来我们在demo目录下新建一个main.c文件文件中写入下面的内容:
#include<stdio.h> int main(){ printf("hello world!"); return 0; }
为了将这个新建立的文件添加到版本库,需要执行下面的命令:
git add main.c
把当前目录下所有的文件add到仓库中可以用下面的命令:
git add .
执行add操作就把main.c文件添加到了版本库的“暂存区”,这时并不是真正的添加到了版本库,执行commit之后才算将文件添加到版本库。
git commit -m "my first commit"
上面的-m参数是说明本次提交的解释性文字,git是强制执行的。关于git的暂存区,可以去这里参考下【暂存区】。
4.连接远程版本库
以github为例,连接github的时候可以使用https协议,也可以使用ssh协议,如果是https,需要每次输入账号密码,如果使用ssh就没有这么麻烦。生成ssh公钥的命令:
ssh-keygen -t rsa -C "your_email@example.com"
本地与远程版本库的连接有两种,一种是先在github等类似网站上创建好然后clong到本地,另一种是本地已经创建好了版本库连接到远程。
(a) clong
clong的应用场景是,本地没有任何仓库,远程已经存在仓库,执行clong命令后可以在本地创建一个仓库。
clong的命令:
git clone <url>
<url>是远程仓库的url地址,下图是github上微软.net core项目的仓库,红框的内容,就是远程仓库的url。
在本地执行 git clong https://github.comdotnet/core.git 就能把这个项目clong到本地。这会在当前目录下创建一个名为 “dotnet” 的目录,并在这个目录下初始化一个 .git 文件夹,从远程仓库拉取下所有数据放入 .git 文件夹,然后从中读取最新版本的文件的拷贝。 如果你进入到这个新建的 dotnet 文件夹,你会发现所有的项目文件已经在里面了,准备就绪等待后续的开发和使用。
如果你想在克隆远程仓库的时候,自定义本地仓库的名字,你可以使用如下命令:
git clone https://github.com/dotnet/core.git mydotnet
这样就会在本地创建一个名叫mydotnet的仓库(实际上就是换了一个名字)。
实际操作如下图(我在github上创建了一个名为domo的空仓库来作演示):
(b) 本地已经有版本库的情况
为本地仓库添加一个远程仓库的命令:
git remote add <shortname> <url>
<short name>是我们为这个远程仓库指定的简写名称,例如好多都是默认origin。
<url>指的就是远程仓库的地址比如 https://github.com/paulboone/ticgit 。
5.与远程版本库的交互操作
(a)从远程仓库中抓取与拉取
git fetch <remote-name>
这个命令会访问远程仓库,从中拉取所有你还没有的数据。 执行完成后,你将会拥有那个远程仓库中所有分支的引用,可以随时合并或查看。
如果你使用 clone 命令克隆了一个仓库,命令会自动将其添加为远程仓库并默认以 “origin” 为简写。 所以,git fetch origin 会抓取克隆(或上一次抓取)后新推送的所有工作。 必须注意 git fetch 命令会将数据拉取到你的本地仓库 - 它并不会自动合并或修改你当前的工作。 当准备好时你必须手动将其合并入你的工作。
(b)推送到远程仓库
git push <remote-name> <branch-name>
(c)查看远程仓库
git remote show <remote-name>
参考:
https://git-scm.com/book/zh/v2
http://www.worldhello.net/gotgit/index.html
https://gitee.com/help/articles/4122
git的常用命令 http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html
github的文档 : https://help.github.com/cn/github/using-git/learning-about-git