Git 安装
在你开始使用 Git 前,需要将它安装在你的计算机上。
- 在 Linux 上安装
如果你想在 Linux 上用二进制安装程序来安装 Git,公司的 yum 源上已经提供 Git 的 RPM 包,安装命令:
$ sudo yum install git git-config -b current
其中:git-config 是配置 Git 的一些常用配置,如 co 代表 checkout , ci 代表 checkin
要了解更多选择,Git 官方网站上有在各种 Unix 风格的系统上安装步骤,网址为 http://git-scm.com/download/linux。
- 在 Mac 上安装
一般 Mac OSX 自带 Git 。
如果你想安装更新的版本,可以使用二进制安装程序。 官方维护的 OSX Git 安装程序可以在 Git 官方网站下载,网址为 http://git-scm.com/download/mac。
- 在 Windows 上安装
在 Git 官方网站下载。 打开 http://git-scm.com/download/win ,下载会自动开始。 要注意这是一个名为 Git for Windows的项目(也叫做 msysGit),和 Git 是分别独立的项目;更多信息请访问 http://msysgit.github.io/ 。
Git 图形化界面和插件
Git GUI
-
Git GUI 是 Git 官方的图形化界面,强项是 commit 前代码改动的浏览和挑选。Windows、Linux 上都能运行。以下描述的是 Windows 的安装和使用。
-
安装
在前面一节 安装Git 中已经安装了。
-
启动运行
- 方法1:在Windows Explorer,适当目录下,右键菜单,Git GUI Here。
- 方法2:在命令行界面,敲命令“git gui”。
- 方法3:开始菜单。
Gitk
-
Gitk 也是 Git 官方的图形化界面,强项是显示版本树、历史信息。Windows、Linux 上都能运行。以下描述的是 Windows 的安装和使用。
-
安装
在前面一节 安装Git 中已经安装了。
-
启动运行
- 方法1:在命令行界面,敲命令“gitk --all &”。
- 方法2:Git GUI -> 菜单 -> 版本库 -> 图示所有分支的历史
TortoiseGit (备选)
支持系统:Windows (免费软件)
在 https://tortoisegit.org/ 下载。
SourceTree (备选)
支持系统:Windows / OS X (免费软件)
https://www.sourcetreeapp.com/
Eclipse 的 Git 插件 EGit(备选)
Eclipse 的插件安装就不在这里赘述了。
EGit插件地址:http://download.eclipse.org/egit/updates
这里有EGit学习材料:http://www.cnblogs.com/hnrainll/archive/2013/03/23/2976797.html
IntelliJ IDEA 上的 Git 插件(备选)
Git 本地环境配置
创建账号
非常简单,只需要登录 git,系统就会自动帮你创建好账号了。
安装 Git
可以在命令行里输入以下命令确认安装情况:
git --version
若没安装或版本低于1.9.5,则需要安装更高版本的 Git,请参考 Git 安装。
启动 Git
-
Linux
直接在命令行终端输入 Git 命令,比如
$ git help
-
Mac
直接在命令行终端输入 Git 命令,比如
$ git help
-
Windows
- Windows:使用Windows自带的命令行界面
可以在Windows自己的命令行界面下可以直接运行 Git 命令行,比如
D:\\gittest\\test> git help
当命令中有些特殊参数的时候,要加上双引号。比如
D:\\gittest\\test> git log HEAD^
特殊符号^会被Windows误解,所以要加双引号,写成
D:\\gittest\\test>git log "HEAD^"
- Windows:使用 msysGit 自带的Bash
使用 Bash 就不用像上面那样加双引号了。启动 Git Bash 的简便方法是,在 Windows Explorer 里,鼠标右键弹出菜单,Git Bash,如下:
image此外,也可以从Windows开始菜单进入。
注意,有利有弊,这个Bash对中文的支持不太好哦。
设置 Git
设置用户名和 email(必须设置)
在命令行里输入以下命令来添加用户名和 email ,这个信息将用在后续你的每一次 Git 提交里。
git config --global user.name "AmorR"
# 请换成你自己的名字
git config --global user.email "teng0009@126.com"
# 请换成你自己的邮箱
其他设置
不论 Windows 还是 Linux 还是Mac,建议至少config下述内容:
git config --global push.default simple
# 我们要求 Git 版本 1.9.5 以上
git config --global core.autocrlf false
# 让Git不要管Windows/Unix换行符转换的事
Windows上还需要配置:
git config --global core.ignorecase false
# 设置大小写敏感
以上设置执行完成后,可以通过以下命令查看是否配置正确。ssh
git config --global --list
#查看设置
创建 SSH Keys
登录 Git ,在右侧上方头像点击“Setting”,继续左侧点击“SSH and GPG keys”
然后点击绿色按钮 “New SSH key”
在本地命令行里生成SSH Key。然后把它复制到上述网页。然后提交表单即可。
添加完成后,确认key是否配置正确,可通过命令检查:
$ ssh git@github.com
如果返回用户的用户名,则表示配置正确。如下:
PTY allocation request failed on channel 0
Welcome to Github, AmorR!
Connection to github.com closed.
如果返回
sign_and_send_pubkey: signing failed: agent refused operation
Permission denied (publickey).
那么请在本机补充运行
ssh-add
确认key配置正确后,你就可以通过 SSH 协议来使用 Git 了。
如果有多个 key 的情况,最好使用 config 文件来配置 Git专用 key
编辑 config 文件:vim ~/.ssh/config config 文件内容:
Host gitlab.alipay-inc.com
HostName gitlab.alipay-inc.com
Port 22
User git
IdentityFile ~/.ssh/id_rsa
基本指令
Step 1
找到你需要操作的 Git 项目,确定你需要使用的协议,如使用 SSH 协议:
git@github.com:AmorR/Amor.git
使用 HTTP 协议:
https://github.com/AmorR/Amor.git
Step 2
获取代码,clone 项目,如 clone 以上 Step1 中的项目,可以选择使用 SSH 协议或 HTTP 协议,选择其中一种就可以了,根据选择的协议使用 git clone 命令:
SSH 协议(需要先按照 Step 0 中说明的配置添加 SSH Key ):
$ git clone git@github.com:AmorR/Amor.git
HTTP 协议(根据提示输入域账号、域密码):
$ git clone https://github.com/AmorR/Amor.git
Step 3
切换到指定分支,如切换到 master 分支
$git checkout master
Step 4
修改代码,并提交代码至本地版本库
// 查看修改过的文件,可以经常使用此命令
$git status
// 将修改过的文件手动加入索引,供下一步提交
$git add xxx/xxx.js
// 提交
$git commit -m "注释"
Step 5
推送到远程服务器,如推送 master 分支
$ git push origin master
提交相关:
git add a.vm //添加某个文件到本地暂存区
git add . //添加所有目录下修改过的文件
git rm a.vm //移除某个文件,和git add 相反
git status //用来查看当前工作区的状态
git commit -m "feat:增加构建文件类型说明" //提交并增加提交注释,非常重要且常用的命令。用于将所有通过 git add暂存的文件,提交到本地库。
本地和服务器仓库交互:
git fetch //获取远程仓库的代码
git pull //相当于git fetch + git merge
git push //常会用到的命令,用于将本地的文件推送到服务器上
分支相关:
git branch //查看分支状况
git branch -h //查看其他的命令
git checkout develop-branch //用来切换分支
git log //查看历史
git stash //用来临时存放暂不打算提交的文件
git tag //为代码的历史记录某个点打个标签,一般用来标记发布的版本。
git cherry-pick //用于将另一个分支的某次提交代码,合并到当前分支。
git rebase //用于将另一个分支的最新代码,全量合并到当前分支。