啟航 git 與 git-svn 簡單教學.htm

本文介绍如何通过Git与SVN结合使用来管理源代码。内容包括安装Git核心组件及Git-SVN插件、从SVN仓库克隆源代码、查看日志、创建并跟踪远程分支、获取更新、解决冲突、提交更改到SVN服务器等操作步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://blog.chhsu.org/2010/05/git-git-svn.html


以幫你備份。簡單來說,如果你正在寫論文,請好好學習一下 git 的用法,它對你備份論文與實驗是很有幫助的。

下面說明如何透過 git-svn 與 svn server 溝通並取得 source code 

安裝 git-core git-svn

# sudo apt-get install git-core  git-svn
取得 svn source code
# git svn clone http://url/svn/trunk/ test
完全可以離線作業的 log
# git log
想 用 svn format來看,沒問題
# git svn log
# git svn log -v
想知道source code從那邊下來的
# git svn  info 

開個自己工作用的 local branch,並追蹤 remotes/origin/git-svn 的變化
# git checkout -b test-trunk --track git-svn
確 認工作的 branch
# git branch -a
    master
  * test-trunk
    remotes/git-svn
切換到遠端的 branch (其實都在本機端)
# git checkout  git-svn
切換到 local branch
# git checkout  test-trunk
Previous HEAD position was cf9b8a4... create test.c form svn.
Switched to branch 'test-trunk'
Your branch is behind 'git-svn' by 1 commit, and can be fast-forwarded.
取得遠端更新 (svn update),順便 merge code 進 local branch
# git pull 
From .
 * remote branch     git-svn    -> FETCH_HEAD
Updating 99c1a6f..cf9b8a4
Fast-forward
 0 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 test.c
也可先取得遠端更新,但是不merge code 到自己的 local branch,不過實際狀況其實是更新到你的電腦中的 remotes/git-svn branch
# git svn fetch
Note: checking out 'git-svn'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

HEAD is now at cf9b8a4... create test.c form svn.

與上面的有同樣功能,但是差別在於,會直接將你現在的工作的 branch 直接 merge 成 svn 上面的 code。
# git svn rebase
如果你對於 merge code 有恐懼,建議流程如下,
# git svn fetch
# git checkout git-svn 
看看 code 的狀況,或只需要merge哪部份
# git checkout work-trunk
如果在開branch 有加上 --track 的選項,就可以直接下 pull
# git pull
如果沒有,請下
# git pull origin git-svn 
已經取得 svn server 上的 source code,要如何 commit code 到 svn?
請確認你已經將修改的檔案 commit 到 local branch,然後再透過下面指令
# git svn dcommit 
如果已經在 local branch commit 了五次 code , git svn dcommit 會一次送出所有 commit。

整理的流程如下
git svn clone URL LOCAL #  取得程式碼
git checkout -b BRANCH #  開個自己用的branch
#  修改你的程式碼或文件
git add MODIFY-FILE #  將修改的程式碼加入要 commit 的範圍
git status #  確認你要 commit 的東西是否正確
git commit  #  送出 commit
git log #  看一下 log 是否程式碼已經成功 commit
git svn rebase #  將同步遠端伺服器程式碼
#  如果有衝突的話,請修正
git svn dcommit #  將程式碼送出到 svn server
git svn log  # 確認一下 svn server 程式碼是否正確。
 

參考連結:

在IT领域,尤其是地理信息系统(GIS)中,坐标转换是一项关键技术。本文将深入探讨百度坐标系、火星坐标系和WGS84坐标系之间的相互转换,并介绍如何使用相关工具进行批量转换。 首先,我们需要了解这三种坐标系的基本概念。WGS84坐标系,即“World Geodetic System 1984”,是一种全球通用的地球坐标系统,广泛应用于GPS定位和地图服务。它以地球椭球模型为基础,以地球质心为原点,是国际航空和航海的主要参考坐标系。百度坐标系(BD-09)是百度地图使用的坐标系。为了保护隐私和安全,百度对WGS84坐标进行了偏移处理,导致其WGS84坐标存在差异。火星坐标系(GCJ-02)是中国国家测绘局采用的坐标系,同样对WGS84坐标进行了加密处理,以防止未经授权的精确位置获取。 坐标转换的目的是确保不同坐标系下的地理位置数据能够准确对应。在GIS应用中,通常通过特定的算法实现转换,如双线性内插法或四参数转换法。一些“坐标转换小工具”可以批量转换百度坐标、火星坐标WGS84坐标。这些工具可能包含样本文件(如org_xy_格式参考.csv),用于提供原始坐标数据,其中包含需要转换的经纬度信息。此外,工具通常会附带使用指南(如重要说明用前必读.txt和readme.txt),说明输入数据格式、转换步骤及可能的精度问题等。x86和x64目录则可能包含适用于32位和64位操作系统的软件或库文件。 在使用这些工具时,用户需要注意以下几点:确保输入的坐标数据准确无误,包括经纬度顺序和浮点数精度;按照工具要求正确组织数据,遵循读写规则;注意转换精度,不同的转换方法可能会产生微小误差;在批量转换时,检查每个坐标是否成功转换,避免个别错误数据影响整体结果。 坐标转换是GIS领域的基础操作,对于地图服务、导航系统和地理数据分析等至关重要。理解不同坐标系的特点和转换方法,有助于我们更好地处
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值