1. git是什么
git是分布式版本控制系统,可多人协助共同维护项目代码及项目管理
2. 安装
a) linux安装
$git //检查是否已安装
先从Git官网下载源码,然后解压,依次输入:./config,make,sudo make install这几个命令安装就好了
b) windows安装
从Git官网直接下载安装程序,然后按默认选项安装即可。
安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
安装完成后设置
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"
3. 创建版本库
$ mkdir learngit //创建一个空目录
$git init //创建新空仓库, 有.git的目录
$ git add readme.txt //添加 把readme.txt文件放到learngit目录下
$ git commit -m "wrote a readme file" //提交 -m后面输入的是本次提交的说明
4. 版本回退
$git status //查看仓库状态
$ git diff readme.txt //查看改动
$ git diff HEAD -- readme.txt //查看工作区和版本库里面最新版本的区别
$git log <--pretty=oneline> //显示提交日志,可添加参数
$git reflog //查看命令历史
$ git reset --hard HEAD^ //回退到上一个版本 HEAD^^ 等价于 HEAD~2
or $ git reset --hard commit id
5. 撤销修改
$ git checkout -- readme.txt //丢弃工作区的修改
$ git reset HEAD readme.txt //把暂存区的修改撤销掉(在add之后,commit之前)
6. 删除文件
$ git rm test.txt
7.添加远程库
$ git remote add origin [email protected]:michaelliao/learngit.git http://xx.xx.xx.xx:xxxx/learngit.git
$ git push -u origin master //推送,第一次推送master分支时,加上了-u参数
$ git clone [email protected]:michaelliao/gitskills.git //克隆从远程库
8.分支管理
$ git branch //查看分支
$ git branch dev //创建分支
$ git checkout dev //切换分支
$ git checkout -b dev //-b参数表示创建并切换到dev
$ git branch //查看分支,当前分支前面会标一个*号
$ git checkout master //切换到master分支
$ git merge dev //合并某分支到当前分支
$ git branch -d dev //删除dev分支
$ git log --graph --pretty=oneline --abbrev-commit //查看分支的合并情况
$ git merge --no-ff -m "merge with no-ff" dev //准备合并dev分支,请注意--no-ff参数,表示禁用Fast forward
$ git stash //把当前工作现场“储藏”起来
$ git stash list //找到刚才“储藏”的工作现场
$ git stash pop //恢复并把stash内容也删除 =git stash applyash + git stash drop
$ git branch -D branch1 //强行删除
$ git remote -v //查看远程库信息
$ git push origin branch_name //推送分支
$ git pull //抓取远程的新提交
$ git branch --set-upstream dev origin/dev //建立本地分支和远程分支的关联
如提交代码出现冲突,通过 git status 找到冲突文件,手动解决冲突后再提交,或者查看冲突文件
9. 标签管理
$ git tag name //打一个新标签
$ git tag //查看所有标签
$ git tag name commit id //通过commit id添加标签
$ git show
$ git tag -a tagname -m "说明" commit id
$ git push origin
$ git push origin --tags //推送全部未推送过的本地标签
$ git tag -d
$ git push origin :refs/tags/
学习资料来源于 Git教程 - 廖雪峰的官方网站,推荐初学者进入这个网站学习