git简易指南
1,安装
对于git,在windows下就下载windows 版本,linux就下载linux版本。
2,创建新仓库
创建新文件夹,打开,然后执行。
git init
以创建新的git仓库。
3,clone检出仓库
执行如下命令以创建一个本地仓库的克隆版本。
git clone /path/to/repository
如果是远程服务器上的仓库,命令如下
git clone username@host:/path/to/repository
4,工作流
本地仓库由git维护的三棵树组成。第一个是工作目录,你是持有你的改动,最后是HEAD,它
指向你最后一次提交的结果。
5,添加和提交
可以提出更改,把它们添加到缓存区,
git add <filename>
git add *
git add -A
这是git的基本工作流程的第一步。
然后添加注释,
git commit -m "XXX"
XXX:是你对该提交的注释。
这时候改动已经提交到了Head,但是还没到你的远程仓库。
6,推送改动
本地仓库的HEAD,执行如下命令提交到远程仓库。
git push origin master
master表示你想推送的分支,你可以通过git branch -a查看所有分支。
7,分支
分支是用来将特性开发绝缘开来的。在你创建仓库的时候,master是默认的分支。
在其他分支上进行开发,完成后在将他们合并到主分支上。
创建一个branch1分支并切换过去
git checkout -b branch1
切换回主分支:
git checkout master
删除分支
git branch -d branch1
除非你把你的分支推送到远程仓库,不然该分支补位他们所见。
git push origin <branch>
8, 更新与合并
要更新你的本地仓库至最新,
git pull
如果以你的工作目录中获取(fetch)并合并(merge)远端的改动。
要合并其他分支到你的当前分支(例如master),执行:
git merge <branch>
这两种情况下,git都回尝试去自动合并改动。不过可能会有可能出现冲突(conflicts)。
这个时候就需要手动去合并这些冲突。改完之后,你需要执行
git add <filename>3
在合并改动之前,你可以使用如下命令预览差异:
git diff <source_branch> <target_branch>
9,标签
为软件发布创建标签。
git tag 1.0.0 1b2e3d4h5j
1b2e3d4h5j是你想标记提交的前10bit字符.
可以通过git log获取到id.
10,替换本地改动
假定操作出现了失误,可以用git checkout -- <filename> 命令来替换本地改动.
如果已经加入到暂存区的改动以及新文件是不会受影响.
如果想全部丢弃,可以指向服务器最新的历史版本.
git fetch origin
git reset --hard origin/master
如果一些比较方便的小技巧:
1.使用gitk,图形化git,便捷.
2.git config color.ui.true 彩色显示
3,显示历史记录时,每个提交的信息只显示一行
git config format.pretty online
4,交互式添加文件到赞成区
git add -i
git特殊命令:
1,git branch -vv
2,git log -1 --stat a1277d5f77c04f68ec47e51f132b036fe47cb04b
core/java/com/android/internal/app/ChooserActivity.java | 419 +++++++++++++++++++++--
core/java/com/android/internal/app/ResolverActivity.java | 69 +++-
core/java/com/android/internal/widget/RosShareResolverDrawerLayout.java | 1044 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
core/res/res/drawable/ros_dot_selected.xml | 14 +
core/res/res/drawable/ros_dot_unselect.xml | 14 +
core/res/res/layout/chooser_grid.xml | 161 ++++++++-
core/res/res/layout/chooser_viewpager.xml | 32 ++
core/res/res/layout/resolve_grid_item.xml | 70 +++-
core/res/res/values/symbols.xml | 7 +
3, git log -p a1277d5f77c04f68ec47e51f132b036fe47cb04b
所有修改详情记录
4 repo forall -c git clean -fdx
5 repo forall -c "git reset --hard XXX;git pull aosp XXX"
6 repo forall -c git status