1、获取Git 安装并配置Git
Git是由Linus Torvalds编写的开源软件(任何人均可以避免费使用),他也编写了Linux操做系统。
它是一个用于跟踪随时间变化的程序,在编程中称为版本控制。git
步骤:安装Git
Windows:建议下载GitHub for Windows,其中包括Git而且安装更简单: windows.github.com。将Git Shell用于您的终端。
Mac:你也能够下载GitHub for Mac,其中包括Git,mac.github.com(来自Preferences,选择命令行工具安装),或者
单独下载Git: git-scm.com/downloads并按照安装说明进行操做。
Git与您计算机上的其余程序不一样。您可能没法在桌面上看到一个图标,但它始终可供您使用,您能够随时从终端或Git桌面应用程序访问它(如GitHub for Mac或Windows)。
步骤:配置Git
一旦安装,打开终端(又名Bash,又名Shell,又名提示)。您能够经过键入来验证它是否真的存在:
$ git --version
这将返回您正在运行的Git版本,看起来像这样:
git version 1.9.1
(任何版本1.7.10或更高版本均可以。)
接下来,配置Git,以便它知道将您的更改与谁关联:
设置你的名字:
$ git config --global user.name "<Your Name>"
如今设置你的邮箱:
$ git config --global user.email "<youremail@example.com>"
2、使用Git
安装完Git以后,咱们须要把使用Git把代码从远程仓库(如Gitlab)上拉取下来,而后用Idea等工具打开,开始咱们的开发工做,下面介绍一些git的经常使用功能属性。
1.建立新仓库:建立新文件夹,打开,而后执行 git init 以建立新的 git 仓库。
2.检出仓库:git clone username@host:/path/to/repository 从远端服务器上检出代码
3.工做流:你的本地仓库由 git 维护的三棵“树”组成。第一个是你的工做目录(working dir),它持有实际文件;第二个是缓存区(Index),它像个缓存区域,临时保存你的改动;最后是HEAD,指向你最近一次提交后的结果。
4.添加与提交:
添加:你能够计划改动(把它们添加到缓存区),使用以下命令:git add <filename> 或者 git add * 这是 git 基本工做流程的第一步
提交:使用commit命令以实际提交改动:git commit -m "代码提交信息" 如今,你的改动已经提交到了 HEAD,可是还没到你的远端仓库。此时别人仍是看不到你的代码。
5.推送改动:你的改动如今已经在本地仓库的 HEAD 中了。执行以下命令以将这些改动提交到远端仓库:git push origin master 固然能够把 master 换成你想要推送的任何分支。
(若是你尚未克隆现有仓库,并欲将你的仓库链接到某个远程服务器,你可使用以下命令添加: git remote add origin <server> 如此你就可以将你的改动推送到所添加的服务器上去了。)
6.分支:分支是用来将特性开发绝缘开来的。在你建立仓库的时候,master 是“默认的分支”。若是在其余分支上进行开发,代码完成后再将它们合并到主分支上。
建立分支:建立一个叫作“feature_x”的分支,并切换过去:git checkout -b feature_x
切换分支:git checkout master ---切换到主分支
删除分支:git branch -d feature_x ---把新建的分支删掉
注意:除非你将分支推送到远端仓库,否则该分支就是不为他人所见的,推送分支到远端仓库:git push origin <branch>
7.更新与合并:
更新:要更新你的本地仓库至最新改动,执行:git pull ---在你的工做目录中获取(fetch)并合并(merge)远端的改动。因此git pull 至关于(fetch + merge),更新与合并操做一块儿进行。
合并:若是要合并其余分支到你的当前分支(例如 master),执行:git merge <branch>
8.解决冲突:上述两种状况下,git 都会尝试去自动合并改动。不幸的是,自动合并并不是次次都能成功,并可能致使 冲突(conflicts)。 这时候就须要你修改这些文件来人工合并这些冲突(conflicts)了。
改完以后,你须要执行以下命令以将它们标记为合并成功:git add <filename> 而后再执行git commit -m "解决冲突..." git push 到远端仓库。
固然在合并改动以前,也可使用以下命令查看:git diff <source_branch> <target_branch>
9.标签:在软件发布时建立标签,是被推荐的。这是个旧有概念,在SVN中也有。能够执行以下命令以建立一个叫作 1.0.0 的标签:git tag 1.0.0 1b2e1d63ff
1b2e1d63ff 是你想要标记的提交ID的前10位字符。使用以下命令获取提交ID:git log 固然你也能够用该提交ID的少一些的前几位,只要它是惟一的。
10.替换本地改动:假如你作错事(天然,这是不可能的),你可使用以下命令替换掉本地改动:git checkout -- <filename>
此命令会使用 HEAD 中的最新内容替换掉你的工做目录中的文件。已添加到缓存区的改动,以及新文件,都不受影响。
假如你想要丢弃你全部的本地改动与提交,能够到服务器上获取最新的版本并将你本地主分支指向到它: ①git fetch origin ②git reset --hard origin/master
3、协同工做:
经过上面的介绍,相信你会对git有了一个基本的认识和了解。下面说一下实际工做中经常使用的命令以及注意事项。
1.经常使用命令:
git init //初始化本地git环境
git clone XXX //克隆一份代码到本地仓库
git pull //把远程库的代码更新到工做台
git pull --rebase origin master //强制把远程库的代码跟新到当前分支上面
git fetch //把远程库的代码更新到本地库
git add . //把本地的修改加到stage中
git commit -m 'comments here' //把stage中的修改提交到本地库
git push //把本地库的修改提交到远程库中
git branch -r/-a //查看远程分支/所有分支
git checkout master/branch //切换到某个分支
git checkout -b test //新建test分支
git checkout -d test //删除test分支
git merge master //假设当前在test分支上面,把master分支上的修改同步到test分支上
git merge tool //调用merge工具
git stash //把未完成的修改缓存到栈容器中
git stash list //查看全部的缓存
git stash pop //恢复本地分支到缓存状态
git blame someFile //查看某个文件的每一行的修改记录()谁在何时修改的)
git status //查看当前分支有哪些修改
git log //查看当前分支上面的日志信息
git diff //查看当前没有add的内容
git diff --cache //查看已经add可是没有commit的内容
git diff HEAD //上面两个内容的合并
git reset --hard HEAD //撤销本地修改
echo $HOME //查看git config的HOME路径
export $HOME=/c/gitconfig //配置git config的HOME路径
2.团队协做git操做流程:
克隆一个全新的项目,完成新功能而且提交:
git clone XXX //克隆代码库
git checkout -b test //新建分支
modify some files //完成修改
git add . //把修改加入stage中
git commit -m '' //提交修改到test分支
git push //推送到远程仓库
审核代码:
git checkout master //切换到master分支
git pull //更新代码
git checkout test //切换到test分支
git meger master //把master分支的代码merge到test分支
git push origin<branch> //把test分支的代码push到远程库
目前正在test分支上面开发某个功能,可是没有完成。忽然一个紧急的bug须要处理
git add . //把修改加入stage中
git stash //把未完成的修改缓存到栈容器中
git checkout bugFixBranch //切换到bugFixBranch分支
git pull --rebase origin master //强制把远程库的代码跟新到当前分支上面
fix the bug //修改bug代码
git add . //把修改加入stage中
git commit -m '' //提交修改到bugFixBranch分支
git push //推送到远程仓库
git checkout test //切换到test分支
git stash pop //恢复本地分支到缓存状态
3.建议:对于新手来讲,常常用的命令可能就几个,并且为了保证不出错,使用如下命令便可:
①git clone XXX //克隆代码--用于第一次拉取代码,初始化本地仓库
②git pull //拉取远程仓库代码并合并
③git add . //提交修改的内容到stage中
④git commit -m "修改内容" //提交代码到本地仓库
⑤git push //将代码提交到远程仓库
以上①只使用一次,之后就按照②③④⑤的顺序操做就能避免一些没必要要的麻烦。github