Git相关知识 day03

一、搭建私有Git服务器

1.1 服务器搭建

        远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改。GitHub就是一个免费托管开源代码的远程仓库。但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用。

        搭建Git服务器需要准备一台运行Linux的机器,在此我们使用CentOS。以下为安装步骤:

第一步:安装git服务环境准备

yum -y install curl curl-devel zlib-devel openssl-devel perl cpio expat-devel gettext-devel gcc cc

第二步:下载git-2.5.0.tar.gz

1)解压缩

2)cd git-2.5.0

3)autoconf

4)./configure

5)make

6)make install

第三步:添加用户

adduser -r -c 'git version control' -d /home/git -m git

此命令执行后会创建/home/git目录作为git用户的主目录。

第四步:设置密码

passwd git

输入两次密码

第五步:切换到git用户

su git

第六步:创建git仓库

git --bare init /home/git/first

1.2 连接服务器

        私有git服务器搭建完成后就可以向连接github一样连接使用了,但是我们的git服务器并没有配置密钥登录,所以每次连接时需要输入密码。

        使用命令连接:

                $ git remote add origin git@192.168.25.156:first

        使用TortoiseGit同步的话参考上面的使用方法。

二、分支管理

2.1 创建合并分支

        在我们每次的提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD指针严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。

        一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点:

        每次提交,master分支都会向前移动一步,这样,随着你不断提交,master分支的线也越来越长。

        当我们创建新的分支,例如dev时,Git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上:

        Git创建一个分支很快,因为除了增加一个dev指针,改改HEAD的指向,工作区的文件都没有任何变化!

        不过,从现在开始,对工作区的修改和提交就是针对dev分支了,比如新提交一次后,dev指针往前移动一步,而master指针不变:

        假如我们在dev上的工作完成了,就可以把dev合并到master上。Git怎么合并呢?最简单的方法,就是直接把master指向dev的当前提交,就完成了合并:

        所以Git合并分支也很快!就改改指针,工作区内容也不变!

        合并完分支后,甚至可以删除dev分支。删除dev分支就是把dev指针给删掉,删掉后,我们就剩下了一条master分支:

2.2 使用TortoiseGit实现分支管理

2.2.1 创建分支

        在本地仓库文件夹中点击右键,然后从菜单中选择“创建分支”:

        如果想创建完毕后直接切换到新分支可以勾选“切换到新分支”选项或者从菜单中选择“切换/检出”来切换分支:

2.2.2 合并分支

        分支切换到dev后就可以对工作区的文件进行修改,然后提交到dev分支,master分支不受影响。例如我们修改mytest.txt中的内容,然后提交到dev分支。

        切换到master分支后还是原来的内容

        将dev分支的内容合并到master分支,当前分支为master。从右键菜单中选择“合并”:

        再查看mytest.txt的内容就已经更新了

2.2.3 解决冲突

        两个分支中编辑的内容都是相互独立互不干扰的,那么如果在两个分支中都对同一个文件进行编辑,然后再合并,就有可能会出现冲突。

        冲突需要手动解决。

        在冲突文件上单机右键选择“解决冲突”菜单项:

        把冲突解决完毕的文件提交到版本库就可以了。

三、在IntelliJ IDEA中使用git

3.1 在Idea中配置git

        安装好IntelliJ IDEA后,如果Git安装在默认路径下,那么idea会自动找到git的位置,如果更改了Git的安装位置则需要手动配置下Git的路径。

        选择File→Settings打开设置窗口,找到Version Control下的git选项:

        选择git的安装目录后可以点击“Test”按钮测试是否正确配置。

3.2 将工程添加至git

        在idea中创建一个工程,例如创建一个java工程,名称为idea-git-test,如下图所示:

        创建本地仓库:在菜单中选择“vcs”→Import into Version Control→Create Git Repository...

        选择工程所在的上级目录。本例中应该选择idea-projects目录,然后点击“OK”按钮,在工程的上级目录创建本地仓库,那么idea-projects目录就是本地仓库的工作目录,此目录中的工程就可以添加到本地仓库中。也就是可以把idea-git-test工程添加到本地仓库中。

        选择之后在工具栏上就多出了git相关工具按钮:

        将工程添加至本地仓库,直接点击commit按钮,将工程提交至本地仓库。

        然后点击“commit”按钮,将工程添加至本地仓库。

        推送到远程

        在github上创建一个仓库然后将本地仓库推送到远程。

        在工程上点击右键,选择git→Repository→push,

        或者在菜单中选择vcs→git→push

        点击“Define remote”链接,配置https形式的URL,git形式的无法通过。然后点击OK

        点击“push”按钮就讲本地仓库推送到远程,如果是第一次配置推送需要输入github的用户名和密码。

3.3 从远程仓库克隆

        关闭工程后,在idea的欢迎页上有“Check out from version control”下拉框,选择git

        此处仍然推荐使用htts形式的url,点击“test”按钮后显示连接成功。

点击OK按钮后根据提示将远程仓库克隆下来,然后导入到idea中。

3.4 从服务端拉取代码

        如果需要从服务端同步代码可以使用工具条中的“update”按钮

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,711评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,079评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,194评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,089评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,197评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,306评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,338评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,119评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,541评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,846评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,014评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,694评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,322评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,026评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,257评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,863评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,895评论 2 351

推荐阅读更多精彩内容

  • 一、Git历史 同生活中的许多伟大事件一样,Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着...
    小陈工阅读 149评论 0 2
  • 一、使用git管理文件版本 1.1修改文件 1.1.1提交修改 被版本库管理的文件不可避免的要发生修改,此时只...
    小陈工阅读 141评论 0 1
  • git相关知识点 1、git初始化 首先明确git的相关名词(工作区、暂存区、版本库、远端仓库) git init...
    誓俭草阅读 424评论 0 0
  • window 安装git 配置邮箱和用户名 git config --global user.name"Your ...
    program_sheep阅读 126评论 0 0
  • 一、版本控制概要 工作区 暂存区 本地仓库 远程仓库 1.1、什么是版本控制 版本控制(Revision cont...
    超超带你学教程阅读 154评论 0 0