本地折腾
切换到某个目录下,将此目录创建为仓库:git init
将文件添加至仓库:git add filename
将改动提交:git commit -m "此处描述更改的什么"
查看仓库的当前状态:git status
查看修改的内容: git diff
步骤:更改文件➡️git add filename(可以用“.”来一次add多个文件)➡️git commit -m "blabla"
查看提交的日志,记录:git log
回退到之前版本 :
git reset --hard Head(这个是退到上一个版本)
Head^^(上上个版本)Head~100(100个版本)
常用:git reset --hard commitId
查看命令历史: git reflog,可以用来重返未来~
文件回到最近一次git commit或者add 时的状态:git checkout -- filename
远程折腾
创建步骤见pdf35页
我在/Users/zh/AndroidStudioProjects中创建仓库并提交到了远程
在/Users/zh/Android/learngit/learngit中clone下来,在两个地方模拟协同工作
创建并切换分支:git checkout -b dev_jqshao
将本分支提交到远程:git push -u origin dev_jqshao
查看分支:git branch
创建分支 git branch name
切换分支 git checkout name
合并某分支到当前分支 git merge name
删除本地分支: git branch -D name
删除远程分支: git push origin :dev_jqshao 或
$git push origin --delete
把dev分支的工作成果合并到master上
git merge dev
http://www.csdn.net/article/2014-06-17/2820265-git此博客有关远程也不错
工作流程(1):
git fetch origin
git checkout -b release_0817_005_3 remotes/origin/release_0817_005_3 基于远程建立本地仓库
git checkout -b jump_jqshao 基于release_0817_005_3 建立开发分支
git push -u origin jump_jqshao 本地分支提交到远程
组成:本地开发分支dev_jqshao,本地同步远程分支release_001,远程开发分支origin/dev_jqshao ,远程主分支origin/release_001.
早上从远程同步到本地release_001,将dev_jqshao merge 到release_001,开始在dev上面开发,开发完成后执行“git add .”(一次性add所有改动的文件)然后“git commit -m"balbala"”添加评论,然后git push到dev_jqshao,请求merge到主分支origin_001. merge之后,再同步到本地.再更新一下远程origin/dev_jqshao(push)
工作流程(2)
从主分支上fork出自己的远程分支
拉到本地git clone git@192.168.1.10:jqshao/ChatGame-Android.git
这时查看远程分支:git remote 只有自己一个origin
再根据主分支创建一个叫“base”的远程分支:git remote add base git@192.168.1.10:Android/ChatGame-Android.git
从base上拉下来某个分支的代码:git fetch base release_0903_006_2
根据origin的release_0903_006_2创建本地release_0903_006_2:git checkout -b release_0903_006_2 remotes/origin/release_0903_006_2
(如果origin里没有想要的分支,就根据base建立分支,但是第一次push的时候需要制定push路径:git push -u origin release_0903_006_2)
远程版本回退:git push --force origin release_0903_006_2 强制将远程分支变为和本地同步
git cherry-pick用于把另一个本地分支的commit修改应用到当前分支。
http://blog.csdn.net/hudashi/article/details/7669462