今天在青训营学习git的正确使用,加油
Git基本命令
基本命令
获取最后一次的提交
git clone
添加和提交
git add README.md
git commit -m "first commit"
与远端交互
git push -u origin dev #推送dev分支到远端,并跟踪(-u)
git pull #拉取(自动合并)
分支
git branch
git checkout -b test origin/Test #从远端的Test(区分大小写)分支新建test分支
git checkout -b dev #从当前分支创建分支dev,并切换到dev分支
git checkout dev #切换到dev分支
git branch -vv #查看分支所跟踪的远端分支
日志
git log --graph --pretty=oneline --abbrev-commit
撤销本地未提交的修改 git checkout .
撤销已经commit但是没有push的修改 git reset --hard commit_id 或者 git reset --hard origin/master
记着:只要没有push,本地可以随便编辑
3,Git的正确使用姿势 使用Git遇到的问题 1,提交内容混乱:大量散乱的commit 2,很多合并导致的无意义提交,例如 “Merge branch ‘xxxbranch’ of xxxxx” 3,主分支(mater,dev等)之间的频繁合并带来的使用困难
解决办法如下 1,开发模式修改 主分支只有master分支,在它上面开发 每个发布周期都从master分支产生新的release分支 release先用于测试,测试通过后用来发布,在发布前打上tag,例如:V1.1.5 测试中的bug根据情况选择分支master或release修改后合并 发布之后,只在客户对应的release分支修改bug,回签到master
关于Git分支和常用命令 我们clone代码到本地之后会保存成两个分支 本地分支(master)和远端分支(origin/master) 我们所有的修改都会在本地分支中进行 Fetch操作会更新远端分支 Merge会将远端分支中的修改合并到本地分支 Pull = Fetch + Merge Push会把本地分支推送到服务器
关于差异比较 在Git的理念中本地分支和远程分支地位是一样的,所以在SVN中跟服务器的比较功能在Git中没有 执行git diff 的时候是工作空间和本地分支比较 Commit之后,工作空间和本地分支就没有区别了,git diff就没有结果 使用Fetch更新远端分支后可以用git diff origin/master比较工作空间和远端分支的差异