跟着廖雪峰大神的博客学习的。
推荐一下大神的博客,写的非常赞。
廖雪峰的git教程
感悟:从毕业到正式上班半年了,使用了一段时间git,发现自己之前还是对他理解的太浅了。在项目中还把同事的代码merge丢失了。在开发过程中,先是add,之后commit,再之后一定要执行pull命令,拉取远程仓库的代码并在本地处理冲突,处理冲突一般是merge或者rebase(我领导推荐这个,不过我还是不怎么用的好),处理完冲突之后再执行push操作。再每次提交时可以查看log日志,比较本次提交和之前版本的改动,避免对他人产生影响。现在有很多GUI的git客户端,很多的IDE在内部也集成了git,强烈推荐使用。
1.设置(全局)账号和邮箱
git config (–global) user.name xxxxxxx
git config (–global) user.email xxxx@xxx
git config -l; //显示设置的信息
2.本地修改,版本回退
git init: 初始化本地仓库
git add file: 添加file文件
git commit -m “add file”: 提交到仓库,-m后面是本次修改说明
git status: 查看当仓库当前状态(可以查看是否有修改)
git diff file: 查看file修改的内容
git log: 查看提交历史记录
git log –pretty=oneline: 只显示版本号和修改(更简捷)
git reset –hard HEAD^(^): 返回到上(上)一个版本
git reset –hard 123456: 回退到指定的版本号
git reflog: 查看命令历史
git主要有工作区,暂存区和分支。
git add会把文件从工作区提交到暂存区
git commit会把文件从暂存区提交到分支
git diff HEAD – file: 查看工作区和版本库最新修改的区别
git checkout – file: 丢弃工作区对file的修改
git reset HEAD file: 丢弃暂存区对file的修改
git rm file + git commit -m “remove file”: 删除版本库的file
git checkout – file: 用版本库的file替换工作区的file
3.远程仓库
ssh-keygen -t rsa -f fileName -C youremail@example.com: 创建ssh key(-t是选择公钥生成的加密方式,-f是保存的文件名,-C是标注)
git remote add origin https://github.com/username/test.git: 添加远程仓库origin(username是用户名,test是我在github新建的仓库名称,使用的https协议,每次需要输入用户密码)
git remote rm origin: 删除远程仓库origin
git push (-u) origin master: 把本地的分支推送到远程,(-u表示本地分支与远程分支关联,之后就不用写了)
git clone git@github.com:username/biyesheji.git: 使用ssh协议把远程仓库拷贝到本地仓库(不用输入用户和密码)
4.分支管理
git branch dev; //创建dev分支
git checkout dev; //切换dev分支
git branch; //显示所有分支,带*的是主分支
git branch -b dev; //创建 + 切换分支
git branch -d dev; //删除dev分支
git merge dev; //把dev分支合并到当前分支(可能冲突)
git log –graph; //查看分支合并图
git merge –no-ff -m “merge with no-ff” dev; //不使用Fast forward模式(合并会丢弃其他分支)
储藏临时的修改到栈
git stash 储藏当前工作
git stash list 查看储藏列表
git stash apply (stash@{0}) 使用最近的储藏(默认是0)
git stash pop 应用储藏并从栈顶移除
git stash drop stash@{0} 移除储藏