Git作为一个版本控制工具的后起之秀,目前已经呈现替代SVN的趋势,如果你现在还在使用SVN等版本控制工具,那说明你已经OUT了!Git 是Linux内核的发明人 大名鼎鼎的Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开源码版本控制工具。
1.Git基本概念介绍
1.1.本地库和远程库
本地库(如用户电脑端的Git库)中有本地分支(dev/master等),远程库(Git服务器)中有远程分支(dev/master等)
1.2.commit
将代码修改提交到本地库
1.3.push
将本地代码的分支更新到远程库的代码分支
1.4.commit and push
先执行commit,然后执行push,即将代码修改提交到本地库,同时 将本地代码的分支更新到远程库的代码分支
1.5. pull
将远程代码库的分支更新到本地分支
1.6. merge
将本地代码的某个分支合并到本地的另一个代码分支,如将dev合并到master分支
1.7 origin
origin可以理解为git远程仓库的名字,比如master指本地master分支,origin/master指远程仓库的master的分支。
2.常用Git操作指令:
2.1.下载git服务器上的代码项目
假如项目地址为 http://git.mydemo.cn/demo.git.
git clone http://git.mydemo.cn/demo.git
2.2.pull dev分支
git pull origin dev:dev
2.3.根据当前dev分支生成新的的代码dev2分支
git checkout -b dev2 // (假如目前所在分支为dev)
2.4.合并dev到dev2分支
git merge dev2 //(假如目前所在分支为dev)
2.5.commit本地dev分支至远程dev分支
git push origin dev:dev
2.6.合并dev分支到master分支并push远程master,合并之前必须保证代码质量
git merge dev //(假如目前所在分支为dev)
git push origin master:master
2.7.将远程dev分支拉取到本地dev分支
git fetch origin dev:dev
2.8.从dev分支切换dev2分支或dev-tag-01
git checkout dev2 //(假如目前所在分支为dev)
git checkout dev-tag-01
2.9. 显示当前git库的状态
git status
2.10.查看本地全部分支,目前所在分支前有*标记
git branch
2.11.查看本地全部远程分支,目前所在分支前有*标记
git branch -a
2.12 查看项目所在的远程地址
git remote -v
2.13 将本地项目绑定到远程git仓库
- git init // 首次添加时,若没有执行git init 会提示fatal: Not a git repository (or any of the parent directories): .git
- git remote add origin http://git.xxx.cn/learn.git
2.14 代码回退到某个commit版本
git reset --hard 1242354365ab23434546 回退到版本为1242354365ab23434546的历史版本
2.15 git pull和git fetch区别
git fetch:是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。
git pull: 则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。
2.16 基于tag创建分支
git branch branch_name tag_v1.0.0
3.最佳实践
git pull origin dev // 拉取远程分支
git add * // 提交哪些文件,*表示提交所有修改的文件
git commit -m "bugfix-nullException" // 提交代码到本地仓库
git push origin dev // 提交代码到远程origin仓库