git常用命令
git init 创建版本库
git add . 或者 git add --all 一次性提交所有文件
git status 查看仓库当前的状态
git diff readme.txt 查看文件不同(提交到仓库就放心多了)
git log 显示从最近到最远的提交日志
git log --pretty=oneline 显示为一个提交一行
HEAD 当前版本 HEAD^ 上一个版本 HEAD^^ 上一个版本
git reset --hard HEAD^ 回退到上一个版本
git reflog 记录每一次命令
git reset --hard de20e25 回退到commit id为de20e25的版本
git diff HEAD -- file1.txt 查看工作区和版本库里面最新版本的区别
git checkout -- file1.txt 让这个文件回到最近一次git commit或git add时的状态
git reset HEAD file1.txt 把暂存区的修改回退到工作区
git remote add origin https://github.com/ximumukang/webpack-task50.git 添加远程仓库
git remote remove origin 取消与远程仓库的关联
git push -u origin master 将提交推送到远程仓库(GitHub)
git push origin :[branchNmae] 删除远程端(GitHub)删除一个分支 :代表删除
git checkout -b dev 创建并切换到dev分支
git branch dev 创建dev分支
git checkout dev 切换到dev分支
git branch 列出所有分支,当前分支前面会标一个*号
git merge dev 用于合并指定分支到当前分支。
git branch -d dev 删除dev分支
git revert -m 1 8e7eb9970ca251bb54e2ad3e759e5f1a49e56a88 commit 为 [revert123456] 撤销1次合并 -m 1(处在master分支时,撤销的是git merge dev 1代表保留master 2代表dev) 这是反向删除
git revert revert123456 revert上次的revert,把撤销的代码找回
分支管理策略
git merge --no-ff -m"merge with no-ff"dev --no-ff参数,表示禁用Fast forward
在实际开发中,我们应该按照几个基本原则进行分支管理:
首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;
你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。
所以,团队合作的分支看起来就像这样:
![](https://img.haomeiwen.com/i6814591/e1373f9566def897.jpg)
Bug 分支
git stash 把当前工作现场“储藏”起来,等以后恢复现场后继续工作
git checkout master
git checkout -b issue-101
git add file1.txt
git commit -m "fix issue-101"
git checkout master
git merge --no-ff -m "merged bug fix 101" issue-101
git branch -d issue-101
git stash list 储存的列表
git stash apply 恢复后,stash内容并不删除,你需要用git stash drop来删除
git stash pop 恢复的同时把stash内容也删了
git stash apply/pop stash@{0} 恢复指定的stash
多人协作
.gitignore
node_modules/ //忽略node_modules文件夹
a.json //忽略a.json文件
*.json //忽略掉所有的后缀为json的文件
参考:廖雪峰git教程