git获取远程仓库代码

git操作

在用git获取OSChina的Android客户端源码时碰到一个问题,发现找到不到分支(只能看到master)

后来才发现,的确只有一个分支,其余都是tag(标签)。(在github上一般都是分支,这里我想当然的去获取分支,结果是啥也没看到,但是readme上明明说有好多个版本的,结果发现这个资源只有一个master,里面还是个空的,代码全在各个tag中。)

关于tag和branch的理解:

  1. tag就像是软件开发过程中的一个里程碑(或理解成一个点),branch是一条新的支路;
  2. tag是静态的,branch要向前走,不断的更新;
  3. 稳定版本备份用tag,新功能开发用branch(开发完成后merge到master)。

SVN中也经常会用到tag,一般项目开发进度里规定的每个里程碑都需要发布相应的版本(供测试人员进行测试,或者其它用途),这时候就需要对外发布指定的tag。

首先在本地创建一个目录“open_source_app”,用来存放工程文件

进入该文件夹,执行

ZF_Chan@ZF_Chan_E440 MINGW32 /d/Demo/Android App Source/open_source_app (master)
$ git clone https://git.oschina.net/oschina/android-app.git
Cloning into 'android-app'...
remote: Counting objects: 36658, done.
remote: Compressing objects: 100% (9792/9792), done.
remote: Total 36658 (delta 23230), reused 35982 (delta 22682)
Receiving objects: 100% (36658/36658), 32.13 MiB | 1.64 MiB/s, done.
Resolving deltas: 100% (23230/23230), done.
Checking connectivity... done.

然后进入“android-app”文件夹下,执行git branch -a命令,查看所有的分支(本地的和远程的)

ZF_Chan@ZF_Chan_E440 MINGW32 /d/Demo/Android App Source/open_source_app/android-app (master)
$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

执行git tag -l命令,查看所有的tag(标签)

ZF_Chan@ZF_Chan_E440 MINGW32 /d/Demo/Android App Source/open_source_app/android-app (master)
$ git tag -l
v1.6.2_beta
v1.7.0
v1.7.1_beta1
v1.7.1_beta2
v1.7.2
v1.7.3
v1.7.4
v1.7.7
v1.7.7.1
v2.2
v2.2.1
v2.3
v2.4
v2.6.2
v2.6.3
v2.6.4

使用git show 查看指定tag的更多细节信息

ZF_Chan@ZF_Chan_E440 MINGW32 /d/Demo/Android App Source/open_source_app/android-app (master)
$ git show v2.2.1
commit e5f67022c82a4d84e65b8f8e95328a4d9afe4e9d
Author: 火蚁 
Date:   Mon May 18 16:12:09 2015 +0800

帖子详情恢复举报功能

diff --git a/osc-android-app/src/net/oschina/app/fragment/PostDetailFragment.java b/osc-android-app/src/net/oschina/app/fragment/PostDetailFragment.java
index 6991783..e5901e0 100644
--- a/osc-android-app/src/net/oschina/app/fragment/PostDetailFragment.java
+++ b/osc-android-app/src/net/oschina/app/fragment/PostDetailFragment.java
@@ -71,6 +71,12 @@ public class PostDetailFragment extends BaseDetailFragment implements
 initViews(view);
 return view;
 }
+
+@Override
+public void onResume() {
+super.onResume();
+((DetailActivity) getActivity()).toolFragment.showReportButton();
+}

 private void initViews(View view) {
 mEmptyLayout = (EmptyLayout) view.findViewById(R.id.error_layout);

再获取执行的tag

ZF_Chan@ZF_Chan_E440 MINGW32 /d/Demo/Android App Source/open_source_app/android-app (master)
$ git fetch origin tag v2.2.1

你可能感兴趣的:(移动开发)