作为一名产品运营人员,Svn 可以不学但 Git 可不能错过,这是我一位做运营的朋友说的。其实一开始这两个我都不知道是什么,经过谷歌Wiki,才知道 Git 和 Svn 都属于版本管理器,不同的是 Git 除本地储存外,有网状态下还可以直接Push到云端仓库,不仅代码,文字也可以如此进行管理,魅族的内容策划团队就曾这么干过 ,他们上传了一份写作手册。
用了几天的时间学习了 Git 的基本操作方法,在此推荐下廖雪峰老师写的《Git教程》,受益良多。
- 创建一个Git项目并推送至Github流程:
mkdir ProjectName //创建一个本地Git项目
pwd //显示当前目录
git init ProjectName //把当前目录初始化为Git仓库
git add ProjectName //将该项目添加至缓冲区
git commit -m "update something" //将项目提交
git remote add orgin git@github.com:username/repositoryname //与远程仓库建立联系
git push -u origin master //将本地库的内容推至Github
- 常用命令调试:
git status //查看当前仓库状态
git diff xxx //查看之前修改了什么
git diff HEAD -- xxx //查看工作区和版本库里面最新版本的区别
git reset --hard HEAD^ //回退到上一个版本
git reset --hard xxx //指定回退到哪个版本号xxx
git checkout -- xxx //文件回到最近一次git commit或git add时的状态
rm xxx //删除文件
git rm xxx //确定删除文件
git checkout -- xxx //删错了重新恢复
git stash //保存工作现场
git stash list //查看现场清单
git stash pop //恢复现场的同时把stash内容也删了
- 自定义Git:
git config --global color.ui true //让Git显示颜色
git config --global alias.lg log //使用alias将git log自定义为git lg
git config --list //查看git配置清单
- 关于git log:
git log //查看历史记录
git --pretty=oneline //打印由时间最近到最远提交日志的缩略信息
git reflog //记录之前的命令
使用git log相当于终端进入vi,退出时按”q“即可(妈妈说常用linux命令还是得记住)
:q //正常退出
:q! //强制退出用
:wq //推出并保存
:wq! //强制推出并保存
- 关于Branch
git checkout -b ooo //创建一个分支ooo
git ckeckout xxx //转到xxx分支
git merge ooo //合并ooo分支
git branch //查看有那些分支
git branch -d ooo //将分支删除
git log--graph --pretty = oneline--abbrev-commit //查看分支合并状态
git merge --no-ff ooo //不使用Git默认合并的Fast forward模式, 便于可以查询是否为合并后的结果
- 使用Git时出现的一些error:
1.不能提交至远程仓库
fatal: 'orgin' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
解决方法:
git remote rm origin //先移除orgin
git remote add origin git@github.com:username/xxx //重新与远程建立连接
2.合并分支时发生冲突
error: you need to resolve your current index first
解决办法:
git reset --merge //回到merge前