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 #保存