Git常用命令
学习自:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
向其表示诚挚的感谢!
一.用户名和密码配置
$ git config --global user.name "taotao"
$ git config --global user.email "69443245@qq.com"
二.创建版本库
进入指定目录,执行以下命令
$ git init
三.windows下注意
使用notepad++,编码设置为UTF-8 without BOM
四.创建新文件,提交到版本库
新建readme.txt
$ git add readme.txt
$ git commit -m "wrote readme file"
添加多个文件到版本库
创建多个文件a.txt,b.txt
$git add a.txt b.txt
$ git commit -m "add more files"
五.修改文件并提交
修改文件之后,查看状态
$ git status
查看上次修改内容
$ git diff readme.txt
缓存文件
$ git add readme.txt
查看文件状态
$ git status
提交文件
$ git commit -m "add distributed"
查看文件状态
$ git status
六.版本回退
查看操作记录
$ git log //参数可选--pretty=oneline
回退到上一个版本
$ git reset --hard HEAD^
回退到上$ git reset --hard HEAD^^到上一百个版本
$ git reset --hard HEAD~100
回退之后,撤销回退
执行回退的窗口关闭前,向上翻到回退之前的版本号
$ git reset --hard c8ae579175cef35529 //版本号的前几位
查看所有操作命令,查找commit id
$ git reflog
七.理解缓存区
当前工作目录中有git生成的.git文件夹,称为git的版本库Repository
其中有称为stage的暂存区
当执行git add fileName的时候,会将文件复制到stage中,
当执行git commit 的时候,会将stage中的所有内容提交
八.管理修改
查看工作区和版本库最新版的区别
$ git diff HEAD -- readme.txt
撤销修改
$ git checkout -- readme.txt
其中,有两种情况:
1.readme.txt未放到暂存区,撤销修改就回到和版本库一样的状态
2.readme.txt已经添加到暂存区,撤销修改就回到添加到暂存区后的状态
总之,就是让这个文件回到最近一次git add或者git commit的状态
将暂存区的修改撤销回工作区
$ git reset HEAD readme.txt
删除文件
在系统中删除文件后,
若确实要删除文件,则执行
$ git rm test.txt
$ git commit -m "remove test.txt"
否则
$ git checkout -- test.txt
九.远程仓库
生成秘钥
$ ssh-keygen -t rsa -C "youremail@example.com"
十.分支
创建分支
$ git checkout -b dev //-b表示创建并切换,等同于 git branch dev;git checkout dev;
查看当前分支
$ git branch //当前分支前会有一个*
切换分支
$ git checkout master
合并分支
git merge dev
删除分支
$ git branch -d dev
解决冲突
如果多个分支,或多个账户修改了同一个文件,merge的时候就会失败,需要解决冲突
$ git status //查看冲突状态
修改冲突文件后,add,commit
查看分支合并情况
$ git log --graph --pretty=oneline --abbrev-commit
分支管理策略
产品分支master
开发分支dev
每个人分支personal
产品发布时将dev分支合并到master,平时用户工作在自己的分支,将修改提交到dev分支上
临时保存当前修改内容,不提交的情况下切换分支
$ git stash
查看保存的工作现场
$ git stash list
恢复现场且删除stash
$ git stash pop
恢复现场,不删除stash
$ git stash apply stash@{0} //这个编号是git stash list 中查看的
强制删除未合并的分支
$ git branch -D bug-101