git获取远程仓库代码

来源:互联网 发布:北欧e家 知乎 编辑:程序博客网 时间:2024/05/02 21:17

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.gitCloning 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 -lv1.6.2_betav1.7.0v1.7.1_beta1v1.7.1_beta2v1.7.2v1.7.3v1.7.4v1.7.7v1.7.7.1v2.2v2.2.1v2.3v2.4v2.6.2v2.6.3v2.6.4

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

ZF_Chan@ZF_Chan_E440 MINGW32 /d/Demo/Android App Source/open_source_app/android-app (master)$ git show v2.2.1commit e5f67022c82a4d84e65b8f8e95328a4d9afe4e9dAuthor: 火蚁 <fireant.me@gmail.com>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.javaindex 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
0 0