利用点时间,把自己这段时间使用git的工具的内容,使用过程中遇到的问题都梳理下。首先我们建立一个文件库(基于Ubuntu系统):

1.必须要安装:

[html]  view plain copy

 
  1. sudo apt-get install git-core

2.建立code库:

[html] 
view plain
copy

 

  1. ~$ mkdir gitTest
  2. ~$ cd gitTest/
  3. ~/gitTest$ mkdir test.git
  4. ~/gitTest$ cd test.git/
  5. ~/gitTest/test.git$ git --bare init

这样一个空的库就建好了,看下空的库中都有什么东西:

[html] 
view plain
copy

 

  1. ~/gitTest/test.git$ ll .git/
  2. branches/    config    description  HEAD    hooks/    info/   objects/  refs/

关注以下三项内容:

HEAD 的文件:

[html] 
view plain
copy

 

  1. ~/gitTest/test.git/.git$ cat HEAD
  2. ref: refs/heads/master

HEAD 文件中的内容其实只是包含了一个索引信息,并且,这个索引将总是指向你的项目中的当前开发分支。master 是默认的分支,这也是为什么 .git/HEAD 创建的时候就指向 master 的原因,尽管目前它其实并不存在。 git 将假设你会在 master 上开始并展开你以后的工作,除非你自己创建你自己的分支。

实际上你可以将你的工作分支叫任何名字,而不必在版本库中一定要有一个叫 master 的分支.

objects子目录:

它包含了你的项目中的所有对象,我们不必直接地了解到这些对象内容,我们应该关心是存放在这些对象中的项目的数据。目前它只包含info,pack两个空文件夹。

refs子目录:

它用来保存指向对象的索引。具体地说,子目录 refs 包含着两个子目录叫 heads 和 tags,就像他们的名字所表达的意味一样:他们存放了不同的开发分支的头的索引, 或者是你用来标定版本的标签的索引。

以上,一个空的文件库已经建好了(作为服务器端),然后使用ssh localhost 命令测试ssh 是否联通?

[html] 
view plain
copy

 

  1. ssh: connect to host localhost port 22: Connection refused

出现这句话说明ssh 没有联通。连接不通的原因可能是ssh没有安装,或者存在防火墙,不过一般个人使用的ubuntu很少有装防火墙。

我的是由于没有安装ssh 客户端和服务器端:

[html] 
view plain
copy

 

  1. sudo apt-get install openssh-client
  2. sudo apt-get install openssh-server

如果用sudo apt-get install 不行的话,参考在ubuntu安装ssh 这篇文章。

安装之后在测试下,发现可以联通了,出现如下信息:

[html] 
view plain
copy

 

  1. ssh localhost
  2. The authenticity of host 'localhost (127.0.0.1)' can't be established.
  3. ECDSA key fingerprint is d8:a4:3a:91:06:ab:6b:57:a2:6d:e4:a7:04:8f:a3:3f.
  4. Are you sure you want to continue connecting (yes/no)?

3.在本地的git仓库"添加一个远程仓库"

[html] 
view plain
copy

 

  1. git remote add origin ssh://172.17.22.11:/home/carson/gitTest/test.git/

添加远程仓库前后:cat test.git/config,信息对比会多出如下信息:

[remote "origin"]
url = ssh://172.17.22.11:/home/carson/gitTest/test.git/
fetch = +refs/heads/*:refs/remotes/origin/*

4.远程Clone code:

[html] 
view plain
copy

 

  1. git clone carson@172.17.22.11:/home/carson/gitTest/test.git/

5.远程添加Code文件:

[html] 
view plain
copy

 

  1. git add firstCode.java
  2. git commit -m "add new file" firstCode.java
  3. git push

git push 的时候会出现如下错误:

No refs in common and none specified; doing nothing.
Perhaps you should specify a branch such as 'master'.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'carson@172.17.22.11:/home/carson/gitTest/test.git/'

解决方法:在git Server 端:

vim .git/config
添加:
          [receive]
           denyCurrentBranch = ignore

功能:允许客户端push(上传代码到.git仓库)代码。

注意:第一次git push的时候,要加上 git push origin master

Git--用git建立code库的更多相关文章

  1. git学习2:版本库

    创建版本库 版本库,又称仓库,英文名为repository,版本库内的所有文件都可以被Git管理起来,即每个文件的修改.删除,Git都能跟踪. 1,在目录中创建版本库 在目录中有两种创建版本库的方法, ...

  2. git服务器的建立——Git折腾小记

    转自:http://blog.csdn.net/xsl1990/article/details/25486211 如果你能看到一些sshd相关的进程信息,则说明你已经有这个服务了,否则(或者你想更新的 ...

  3. git找不到远程库问题

    git报错:Couldn't find remote ref XXXX (gitlab报错)XXXX does not appear to be a git repository Could not ...

  4. git服务器的建立

    git简介 首先,与以前广为流行的SVN不同,git是分布式的,其没有服务器端与客户端之分(虽然在项目管理过程中,一般会人为地指定某一台非开发用的机器作为“服务器”,但就git自身功能来说,完全可以没 ...

  5. Git的使用(1) —— 版本库

    1. 简介 Git作为一个分布式版本控制系统,其优点是不需要一直连接远端版本库就可以使用. 故其为实现分布版本控制专门设计了一整套的存储区间和语句,用来实现. (1) 本地版本库:建立在本机磁盘上的文 ...

  6. IDEA工具java开发之 常用插件 git插件 追加提交 Code Review==代码评审插件 撤销提交 撤销提交 关联远程仓库 设置git 本地操作

    ◆git 插件 请先安装git for windows ,git客户端工具 平时开发中,git的使用都是用可视化界面,git命令需要不时复习,以备不时之需 1.环境准备 (1)设置git (2)本地操 ...

  7. jenkins+git部署环境,出现Failed to connect to repository : Command "git ls-remote -h http://gitlab.xxxxx.git HEAD" returned status code 128stdout: stderr: fatal: repository 'http://gitlab.xxxxx.git' not fou

    1.部署jenkins+git源码管理的方式,源码管理报128stdout 源码管理出现如下错误: Failed to connect to repository : Command "gi ...

  8. mzy git学习,git推送到远程库(八)

    git在同步到远程库 关于git中多个用户切换的事情: 完全使用账户密码策略连接远程库: 之前一直尝试在本地切换多个用户,发现一直不行,很奇怪?后面发现必须要去win10的凭据管理器删除当前git的凭 ...

  9. git无法clone远程代码库及git代理设置

    git作为一个版本管理神器,日常工作中自然也就少不了了:特别是Android开发,github和google是逃不过的了.然而很多时候需要用到git克隆远程的代码库,众所周知的原因google.and ...

随机推荐

  1. 几种网络加载的过渡(更新MaterialProgressBar)

    自定义圆形ProgressBar 1.在drawable文件夹下新建:progressbar_circle_1.xml,如下: <?xml version="1.0" enc ...

  2. 在线教程的游戏化-20分钟做了个demo

    首先,不准说做得撇,因为其一,我只用了20分钟不到:其二,第一次尝试,以前想过,但是一直没有搞过,二话不说,先来截图,下载地址在最下面. 因为第一次尝试,所以很多事件自己还没有闹明白,不过基本上还是看 ...

  3. GO語言視頻教程下載

    需要的朋友可以加QQ群195112,在群共享內可以下載到.

  4. c/c++ 输入输出缓冲区

    关于缓冲区的详细介绍,请参考 C++编程对缓冲区的理解 CPP的输入输出流和缓冲区 c++输出缓冲区刷新   (1)c++中cin.cout,cerr和c的stdin.stdout.stderr都是同 ...

  5. Why数学图像生成工具

    该软件能够以给定的数学公式及算法生成各种绚烂的数学图像.软件中有两种生成图像的方法: (1)通过一种我自定义的脚本语言生成: 软件中定义一套简单易学的脚本语言,用于描述数学表达式.使用时需要先要将数学 ...

  6. 袭击Mercurial SCM(HG)

    这个叫水银的源代码管理工具尽管默默无闻,但还是得到了非常多团队的使用. 为了迎合某些团队的须要,我们也要用它来管理我们的代码. 今天的任务是先袭击学习.磨刀不误砍柴工. 对工具的掌握越快.工作的效率就 ...

  7. poj 3077Rounders(模拟)

    转载请注明出处:viewmode=contents">http://blog.csdn.net/u012860063? viewmode=contents 题目链接:http://po ...

  8. C#集合--ICollection接口和IList接口

    虽然列举接口提供了一个协议,用于向前的方式遍历集合,但它们没有提供一种机制来确定集合的大小,通过索引访问集合的成员,搜索集合,或修改集合.为了实现这些功能,.NET Framework定义了IColl ...

  9. Jenkins Code Sign error: No provisioning profiles found

    === BUILD TARGET JenkinsTest OF PROJECT JenkinsTest WITH CONFIGURATION Release === Check dependencie ...

  10. git第一次提交代码到远程仓库

    博客搬家了,本文新地址:http://www.zicheng.net/article/4 感谢支持 本操作说明是先有代码,后来创建git仓库,然后把本地代码提交到远程仓库的操作步骤: 1.初始化 在当 ...