svn铁粉投敌git并谈谈git如何快速上手

之前代码管理一直使用的是svn,操作比较简单:修改前update到最新版本,修改完commit即可,那么为啥还要投敌到git呢?2个原因:

  • git比较潮,大家都在玩,你不玩就…
  • svn在网络比较差,甚至没网络情况下,不能很好地进行版本管理。

git和svn最大差异:

  • 大家熟知git是代码库分布式管理,简单理解就是电脑本地有个离线库,远程有个在线库,所有增、删、改可以先提交到本地离线库,然后一次性push到远程库。
  • 那么svn呢,svn是中央集中式库,每次提交只能提交到中央库,要么不提交。这样一来问题就来啦,没网络怎么提交?幸好一些常见的IDE开发工具,如eclipse提供了local history功能,但是那玩意就是个黑盒子,啥时会有history记录点根本不可控。

既然决定投敌git,那么git如何快速上手呢,我们从git处理时间轴来反向讨论git该如何快速上手。
git处理时间轴(假设远程服务器已有git项目):
1)本地没有项目的话,先从远程库clone项目;本地已有项目的话,从服务器pull最新;
2)本地增、删、改操作,提交到本地;
3)将本地库push到远程库;

git如何快速上手:
1)github注册一个账号,可以在github上创建代码库;
2)本地安装git;
3)了解git基本命令,add, commit, pull, push等;
4)选一个合适的git图形客户端,如:eclipse git插件;
本文以一个文本替换项目为例,谈谈具体如何实现,下述所有操作基于mac,eclipse ide。

1、github上新建一个项目,lm-txtopr

lm-txtopr是一个文本操作项目,swing图形界面,类似eclipse的查找、替换框,可查找指定目录下含有特定字符串的所有文件,可将还有该字符串的所有文件替换成目标字符串。
登录github网站,新建一个库:lm-txtopr,没米的我只能创建public库,任何人都可以read,地址如下:https://github.com/zongtong2046/lm-txtopr
在这里插入图片描述
创建库的时候,添加了2个额外选项:

  • license,mit;
  • .gitignore,java项目规则文件忽略列表(bin目录等不回提交)

2、git安装

以mac为例,在shell框中输入git --version,如果显示版本号则表示已安装,否则会弹出安装对话框,点击“安装”按钮即可。

mabendeMacBook-Pro:~ xxxxx$ git --version
git version 2.14.3 (Apple Git-98)

或者直接从AppStore安装Xcode,Xcode集成了Git,不过默认没有安装,你需要运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择“Command Line Tools”,点“Install”就可以完成安装了。

3、clone lm-txtopr

打开shell,进入eclipse工作区,然后从github克隆(git clone )项目到本地库。

mabendeMacBook-Pro:~ maben$ cd /Users/maben/work/eclipse_git/
mabendeMacBook-Pro:eclipse_git maben$ git clone [email protected]:zongtong2046/lm-txtopr.git
Cloning into 'lm-txtopr'...
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 4 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (4/4), done.

clone完毕后,eclipse_git工作区下多了一个lm-txtopr目录,包含.git等版本控制信息元文件。

mabendeMacBook-Pro:eclipse_git maben$ cd lm-txtopr
mabendeMacBook-Pro:lm-txtopr maben$ ls -ah
.		..		.gitignore		.git	LICENSE

4、本地创建java项目

先确保eclipse已经安装git插件并设置好git的user.name, user.email,没安装的童鞋可以参考:Eclipse上安装GIT插件EGit及使用
因为github上lm-txtopr是一个空库,因此需要new 一个 java project,创建完后,显示如下:
在这里插入图片描述
因为lm-txtopr git clone自远程服务器,所以项目一创建完就会显示git版本信息。

5、本地代码提交

新建cn.lmlxj.txtopr包,并创建若干java类;
src下新建assets文件夹,放icon图片;
…其它操作

提交到本地库,可以:先add to index,然后commit;或者直接commit。
下图所示为先Add to index,然后再commit。
在这里插入图片描述

6、代码push到远程库

push前,先检查用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:

$ ssh-keygen -t rsa -C "[email protected]"

并将id_rsa.pub公钥复制到github账户设置里:Account settings -> SSH Keys
具体参考:git远程仓库

eclipse中选中项目,右键–>push即可,如下图所示:
在这里插入图片描述
push成功后,原项目显示的[lm-txtopr master ↑1]会变成[lm-txtopr master],箭头1消失,表示本地修改已经push到服务器。

至此,git算是基本上手,更多操作,还得依赖平时磨练,关于git如何快速上手总结如下:

1)必须搞清楚git是分布式代码库,先提交到本地库,然后push到远程库或从远程库pull最新改动;
2)push或pull过程中可能会报错
  • git pull 命令出现fatal: refusing to merge unrelated histories,可参考:https://www.jianshu.com/p/1b696ab39bb1
  • git push 出现Updates were rejected because the remote contains work that you do 可以参考:https://blog.csdn.net/gongqinglin/article/details/79752398
3)关于git,比较容易上手的资料推荐:
发布了294 篇原创文章 · 获赞 98 · 访问量 77万+

猜你喜欢

转载自blog.csdn.net/chuangxin/article/details/99543121
今日推荐