git学习

1.0 git和svn的区别

  SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就郁闷了。

  

  集中管理方式在一定程度上看到其他开发人员在干什么,而管理员也可以很轻松掌握每个人的开发权限。

 

    但是相较于其优点而言,集中式版本控制工具缺点很明显:

 

      服务器单点故障

 

      容错性差

 

   Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

  

 

 

 2.0 git 的工作流程 

  1.从远程仓库中克隆 Git 资源作为本地仓库

  2.从本地仓库中checkout代码然后进行代码修改

  3.在提交前先将代码提交到暂存区

  4.提交修改。提交到本地仓库。本地仓库中保存修改的各个历史版本。

  5.在修改完成后,需要和团队成员共享代码时,可以将代码push到远程仓库

  

 

 

 

3.0 git的安装 

  安装git for windows

  安装TortoiseGit

 

4.0 github使用

  注册登录start a project 填写项目名称 确定

  使用ssh推送项目,首先生成密钥对

    在windows我们可以使用 Git Bash.exe来生成密钥,可以通过开始菜单或者右键菜单打开Git Bash

    git bash 执行命令,生命公钥和私钥

 

      命令: ssh-keygen -t rsa

  

 

 

 

 

    执行命令完成后,window本地用户.ssh目录C:\Users\用户名\.ssh下面生成如下名称的公钥和私钥:

    

 

 

 

  添加公共密钥到github

        

 

  4.1使用命令行将本地仓库推送到远程  

  git remote add origin git@github.com:helloworldmygithub/repo1.git
  git push -u origin master

   呵呵 推送失败,提示connect to host github.com port 22: Connection refused

  见鬼 确定操作无误 百度可知缺少配置文件config, port要改为443

  进入.ssh的目录,创建config配置文件,文件内容

  Host github.com 
  User 1401457589@qq.com 
  Hostname ssh.github.com 
  PreferredAuthentications publickey 
  IdentityFile ~/.ssh/id_rsa 
  Port 443

  重新打开窗口,输入命令,输入yes,成功上传工程

  

  4.2 使用图形界面也可以,在GitHub上新建仓库repo2

    

 

 

     

 

 

 

  4.3 使用https也可以,在GitHub上新建仓库repo3

    

 

 

   4.4克隆下载github项目

    命令行克隆: git clone git@github.com:helloworldmygithub/repo3.git 

    图形化界面克隆:右击克隆添加url即可

  4.5 修改文件并解决冲突

    推送新增文件(右键同步 push推送)

    获取新增文件(右键同步 pull拉取)

  a修改提交本地,同步服务器

  b修改提交本地,同步服务器冲突,同步失败

  b拉取最新代码pull,文件变为黄色三角,说明冲突

  打开查看文件

  aaaa
  <<<<<<< HEAD
  2222
  =======
  1111111
  >>>>>>> 5715cfbf8ce6f9dfe754a7254d5cf423820eb194

  修改文件

  aaaa
  1111111
  2222

  右键点击解决冲突,提交本地,同步远程

 

5.0 搭建私有仓库 

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

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

  1、安装git服务环境准备

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

  2、下载git-2.5.0.tar.gz

  1)解压缩

  2cd git-2.5.0

  3autoconf

  4./configure

  5make

  6make install

  3、添加用户

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

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

  5、设置密码

    passwd git

    输入两次密码

  6、切换到git用户

    su git

  7、创建git仓库

    git --bare init /home/git/first

    注意:如果不使用--bare”参数,初始化仓库后,提交master分支时报错。这是由于git默认拒绝了push操作,需要.git/config添加如下代码:

    [receive]

          denyCurrentBranch = ignore

    推荐使用:git --bare init初始化仓库。

 

6.0 连接私有仓库 

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

 

  使用命令连接:

 

    $ git remote add origin ssh://git@192.168.25.156/home/git/repo1

 

  这种形式和刚才使用的形式好像不一样,前面有ssh://前缀,好吧你也可以这样写:

 

    $ git remote add origin git@192.168.25.156:repo1

 

 

 

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

7.0分支与合并

  

 

创建分支:可以使用创建分支然后切换,也可以直接切换/检出,在里面创建分支

 

切换到master分支,先创建一个text.txt文件,在修改一个hello文件到达v8

切换到dev1分支,新建一个文件zhangsan.txt文件,在修改hello文件到达v6

 

想要将dev1合并到master分支

  首先切换到master分支,然后选择合并,选择从dev1合并

  修改hello文件解决冲突,标记解决冲突resolve,提交

8.0 在idea中使用git

 

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

 

选择FileSettings打开设置窗口,找到Version Control下的git选项:选择git的安装目录后可以点击“Test”按钮测试是否正确配置

 

  在idea中创建一个工程,例如创建一个java工程,名称为idea-git-test

  在菜单中选择vcs”→Import into Version ControlCreate Git Repository...   目录最好选择工程的上级目录

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

 

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

  

 

 

 

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

 

推送到远程仓库

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

  在工程上点击右键,选择gitRepositorypush

  或者在菜单中选择vcsgitpush

 

 

 

 

 

 

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

  输入用户名密码,记住用户名密码

 

 

 

从远程仓库下载工程

  checkout from version control ->git->复制仓库路径->clone->yes->next->next

 

 

分支:vcs->git->branches ->create创建分支   ->选择并checkout切换分支

 

posted @ 2019-10-03 19:04  helloworldmybokeyuan  阅读(264)  评论(0编辑  收藏  举报