MAC下 Git 安装及使用小整理

MAC OS X 安装 Git 及一些小知识整理,本文基于 Github 和 Gitee.com(原Git-OSC)。

安装 Git

下载最新版本的Git:

http://git-scm.com/downloads

查看版本:

git --version

查看状态:

git status

安装完成后,还需要打开终端简单的配置一下。

配置全局 Git 信息

设置 Git 用户名和邮箱,将会出现在你的提交记录中。

$ git config --global user.name "你的昵称"
$ git config --global user.email "你的邮箱"

创建本地版本库

版本库又名仓库,英文名 repository,可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

1、选择一个合适的目录,创建一个空目录

$ cd /Users/yangjunwei/git
$ mkdir git_test
$ cd git_test
$ pwd    /* pwd 命令用于显示当前目录路径 */
/Users/yangjunwei/git/git_test

于是在 mac 中的 /Users/yangjunwei/git/git_test 目录创建了一个仓库。

2、通过 git init 命令把这个目录变成Git可以管理的仓库

$ git init
# Reinitialized existing Git repository in /Users/yangjunwei/WebServer/osc/.git/

一个Git空仓库(empty Git repository)就建好了,当前目录下会自动创建一个.git的目录,用于跟踪管理版本库(千万不要手动修改这个目录里面的文件,否则Git仓库给破坏了),.git目录默认隐藏,可以用 “ls -ah” 命令查看。

添加关联远程库

添加别名为 origin 的源到远程仓库地址,在本地的 git_test 仓库下运行命令:

$ git remote add origin https://git.oschina.net/yangjunwei/yangjunwei.git

添加后,远程库的名字就是 origin,这是Git默认的叫法,也可以改成别的。

本地内容push推送到远程库

上述操作中,本地库创建了,远程库关联了,下一步就可以把本地库的所有内容推送到远程库上了。

1、在本地库中添加文件

以 readme.txt 为例,无论是新建还是拷贝到目录中的文件,都需要添加到库中。

$ git add readme.txt

2、记录log日志

此步非必需,但尽量使用命令 git commit 记录操作日志,目的是告诉Git做了哪些操作,方便以后阅读和理解。

$ git commit -m "wrote a readme file"

注:以上两步,均保存在本地库中,下面要将本地库内容推送到远程库。

3、git push 提交

提交文件和log日志到远程仓库 origin 的master分支下。

$ git push -u origin master

注:origin 为上述创建的远程仓库 Repository 的别名。

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,以后再push推送或者pull拉取时就可以简化命令:

$ git push origin master

将已有项目提交到远程库

$ git add .                     //添加当前目录中的所有文件到索引
$ git commit -m "first commit"  //提交到本地源码库,并附加提交注释
$ git push -u origin master     //把本地项目push到远程库

上边算是一个大概的 Git 使用流程了,下面是一些拓展类的,有必要整理一下!

远程库 clone 克隆到本地库

上述流程中,大概是将本地库push到一个空的远程库中,如果远程库已经有一定内容,那可以使用命令 git clone 克隆一个空的本地库中进行后续开发。

#打开一个空白目录
$ cd /Users/yangjunwei/git

#创建 git
$ git init

#关联远程库
$ git remote add origin https://git.oschina.net/yangjunwei/yangjunwei.git

#拉取远程库代码
$ git clone https://git.oschina.net/yangjunwei/yangjunwei.git

#剩下的就是修改代码后 push 的流程了

注:上述命令要在本地库目录中操作。

SSH Keys 公钥

当本地库的内容推送到远程,用git push命令,此时有两种方式:HTTPS 或 SSH,HTTP方式Push时,每次都需要输入用户名和密码,而SSH方式则不需要。

以Git@OSC为例,使用SSH公钥可以让本机和 Gitee.com 之间建立安全的加密连接,同时 git 的 remote 要使用SSH地址。

1、生成SSH Key

$ ssh-keygen -t rsa -C "上述设置的邮箱"

例如:

$ ssh-keygen -t rsa -C "admin@yangjunwei.com"

中间需要设置密码,此方法会直接覆盖 ~/.ssh/id_rsa.pub 下面的公钥。

2、查看 public key,并保存SSH公钥到 Gitee.com

查看你的public key,并把他添加到 Gitee.com https://gitee.com/profile/sshkeys 保存SSH公钥设置

$ cat ~/.ssh/id_rsa.pub
# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABA……

添加后,在终端(Terminal)中输入

ssh -T git@gitee.com

若返回如下内容,则表示添加成功。中间可能会提示让你输入为id_rsa设置的密码
Welcome to Gitee.com, YangJunwei!

如果之前是 http 方式push,这里需要修改项目文件目录下面的 .git 目录中的config文件中的url,改成你项目的ssh地址,以后再有 push 操作时,只需要输入ssh key的密码就ok了,不在需要输入git@osc的账户和密码。

以下方法二选一即可。

# 1、命令法
$ cd "项目git目录文件夹"
$ git remote set-url origin "git@git.oschina.net:yangjunwei/yangjunwei.git"

# 2、直接修改配置文件
$ vi .git/config
$ :wq      #保存