1、基本语法
cd 目录
- git init-------把这个目录变成git可以管理的仓库
- git add xxxx-------将文件xxxx添加到暂存区("git add ."可以一次性添加所有文件)
- git commit -m "xxxx"-------将文件提交到仓库且备注为xxxx
- git status-------查看仓库状态,Git中文件的4种状态(http://www.jianshu.com/p/96beaf505865)
- git diff xxxx-------查看 xxxx 修改前后的不同之处
- cat xxxx-------查看xxxx 的具体内容
2、版本回退
- 查看历史版本-------git log 或者 git log --pretty=oneline
- 版本回退-------git reset --hard HEAD^ 或者 git reset --hard HEAD~100
- 恢复:版本号回退-------git reflog(查询版本号)
git reset-------hard 版本号 (恢复到版本号所在节点)
3、删除修改
- 方法一-------手动修改后add 再commit
- 方法二-------git reset --hard HEAD^(回到上一个版本)
- 方法三-------git checkout -- xxxx(中间的--不能省。没有--就是创建分支)
添加到暂存区后修改的文件-->回到添加暂存区后的状态
修改后还未添加到暂存区的-->撤销修改就回到和版本库一模一样的状态
4、删除文件
- rm xxxx-------在目录下删除文件xxxx,删除后可以commit 或 选择恢复
- 恢复方法:git checkout -- xxxx
分支-------分支策略:首先master主分支应该是非常稳定的,也就是用来发布新版本,一般情况下不允许在上面干活,干活一般情况下在新建的dev分支上干活,干完活后,比如说要发布,或者说dev分支代码稳定后可以合并到主分支master上来。
1、创建及合并分支
- git checkout -b xxxx-------等于git branch xxxx(创建xxxx分支) 和 git checkout xxxx(切换到xxxx分支) 相加的结果
- git branch-------查看分支,在当前分支前加星号
- git merge xxxx-------把xxxx分支合并到当前分支上(这是fast forward 模式)
- git merge --no--ff -m "注释" xxxx-------使用非fast forward模式,合并分支后分支的版本号还可以访问到
- git branch -d xxxx-------一般合并完成后可以删除分支xxxx
2、解决分支冲突
- 方法一-------改成相同的再合并
3、bug分支
- git stash-------隐藏当前工作分支,好去创建bug分支,解决了bug后再切换回当前分支
- git branch xxxx-------切换回当前分支,但隐藏后切换回来的分支status是clean的
- git stash pop-------恢复的同时删除stash内容, 等于git stash apply(恢复stash内容) 加 git stash drop(删除stash内容)
- git stash list-------查看隐藏分支的内容
4、多人合作
如果两人修改同一个地方,则会出现推送冲突,解决方法是:1、尝试git push origin branch-name --> 2、git pull --> 3、手动解决冲突 后 git push 上去
远程仓库
1、创建及关联远程仓库
创建github仓库
git remote add origin https://github.com/tugenhua0707/testgit.git关联远程仓库
git push origin master 推送到远程仓库(第一次推送时加 -u 到origin前面)
2、从远程仓库克隆到本地
git clone http://....