git 初探-从svn的过渡

git svn 的区别
git:分布式。开发者可以提交到本地,每个开发者机器上都是一个完整的数据库。两个开发者之间,可以通过打patch的方式交换文件。
svn:集中式。所谓 git 服务器,是指大家约定使用同一个网址提交、更新代码。这个网址可以是任何一个开发机。

git 建立 branch 的速度更快,因为只保存增量。svn 的 branch 是一份完整的代码拷贝。

git 工作区、暂存区的概念
保存文件后,进入工作区
git add 后,进入暂存区
git commit 后->产生提交记录,这时只要文件系统是好的,并且不执行 git reset --hard,那么你的所有修改都已经被安全的记录下来了
git push 后 ->代码进入仓库,这时别人可以获取到你的代码了

刚接触git时,容易混淆的几个命令
git reset --path:是git add 的反向操作。
git revert :不能指定单个文件,只能指定一个commid id,撤销这次commit的所有修改。撤销行为本身也会成为一个commit。
git checkout --path:不指定commit id时,是用暂存区的文件覆盖工作区的文件,否则用commit id中的文件版本,覆盖暂存区中和工作区中对应的文件。

常用的 svn 命令跟 git 命令作比较

svn git 备注  
更新
git fetch --all 
git pull origin/xxx_branch
 git fetch — all 用来获取 git 仓库的 branch 更新信息; 如果指定了 track branch,git pull 可以不跟参数。  
提交
git add xxx
git commit -m “message"
git push origin local:remote
   
Update to Version git checkout commit_id -- file git 里的 commit id相当于 svn 的 version  
显示资源历史记录 git log / gitk 下面有 gitk 在 mac 系统的安装方法  
还原
丢弃本次修改到最近一次 commit 的状态:
git checkout -- file
 SVN 的还原是指,丢弃本次修改,将文件或目录还原到与服务器一致的状态。
git 没有中央服务器的概念,因此“还原”可以理解为,将指定文件或目录,更新为最近一次提交的版本。
 

其他常用的 git 命令
git pull --rebase 本地有一些 commit 的前提下,希望 merge 远程代码,同时保留之前的 commit 信息。
git cherry-pick 通过 git log 命令,找到某一个 commit id,希望只 merge 此次 commit 的内容。

repo
有一个 manifest.xml 文件,记录若干git仓库,例如 AOSP 的管理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值