Git管理本地代码(一)【转】

转自:http://blog.csdn.net/weihan1314/article/details/8677800

版权声明:本文为博主原创文章,未经博主允许不得转载。

目录(?)[+]

安装Git

[plain] view plain copy

  1. $sudo apt-get install git
  2. $sudo apt-get install git-core

更新Git

[plain] view plain copy

  1. $git clone git://git.kernel.org/pub/scm/git/git.git

安装好git后在终端输入git 命令会显示git命令提示,证明git已经安装成功。

初始化代码仓库

[plain] view plain copy

  1. $mkdir android4.2
  2. $cd android4.2
  3. $git init

git init 和git --bare init 的具体区别参考:http://blog.haohtml.com/archives/12265

提示: Initialized empty Git repository in /data/Downloads/Git/android4.2/.git/证明git仓库(repository)创建成功

配置config文件(全局)

[plain] view plain copy

  1. $cd .git
  2. $vim config

该配置文件的原始内容为:

[plain] view plain copy

  1. [core]
  2. repositoryformatversion = 0
  3. filemode = true
  4. bare = false
  5. logallrefupdates = true

在该配置文件中加入以下内容:

[plain] view plain copy

  1. [receive]
  2. denyCurrentBranch = ignore

加入该配置的目的是:允许使用git push 提交代码到服务器,否则会出现以下异常:

remote: error: refusing to update checked out branch: refs/heads/master

remote: error: By default, updating the current branch in a non-bare repository

remote: error: is denied, because it will make the index and work tree inconsistent

remote: error: with what you pushed, and will require ‘git reset --hard‘ to match

remote: error: the work tree to HEAD.

remote: error:

remote: error: You can set ‘receive.denyCurrentBranch‘ configuration variable to

remote: error: ‘ignore‘ or ‘warn‘ in the remote repository to allow pushing into

remote: error: its current branch; however, this is not recommended unless you

remote: error: arranged to update its work tree to match what you pushed in some

remote: error: other way.

remote: error:

remote: error: To squelch this message and still keep the default behaviour, set

remote: error: ‘receive.denyCurrentBranch‘ configuration variable to ‘refuse‘.

To [email protected]:/var/git.server/.../web

! [remote rejected] master -> master (branch is currently checked out)

error: failed to push some refs to ‘[email protected]:/var/git.server/.../web‘

在代码仓库创建一个说明文档(该文档可以随便创建)

[plain] view plain copy

  1. $touch spec.txt

备注:如果初始的代码仓库为空,git push origin master提交代码的时候会出现以下异常:

error: src refspec master does not match any.
error: failed to push some refs to ‘/data/Downloads/Git/android4.2/.git
因此我们需要在初始化代码仓库之后,在仓库中创建一个文件:

实例:

[plain] view plain copy

  1. $touch spec.txt
  2. $git add spec.txt
  3. $git commit-a -m "first commit"
  4. $git push

此时,基本的代码仓库已经创建完成。本地代码仓库的Git库为:/data/Downloads/Git/android4.2/.git

同步代码

创建myprojects目录,同步代码

[plain] view plain copy

  1. $mkdir Download/myprojects
  2. $git clone /data/Downloads/Git/android4.2/.git

修改文件

[plain] view plain copy

  1. $touch test.txt

(备注:在这里可以编写和更改文件,本文只是讲解Git库的使用,所以只是简单的创建了一个文件)

使用git diff 和 git status 命令可以查看代码当前的状态

提交代码

[plain] view plain copy

  1. $git add test.text
  2. $git commit -a -m "second commit"
  3. $git push origin master

查看log信息

[plain] view plain copy

  1. $git log

查看代码仓库中代码是否提交成功

进入代码仓库目录,查看代码提交log

[plain] view plain copy

  1. $cd android4.2
  2. $git log

能够查看代码提交的log信息,但是却无法看到我们提交的代码,怎么回事呢?

如果使用了git init初始化,则远程仓库的目录下,也包含work tree,当本地仓库向远程仓库push时, 如果远程仓库正在push的分支上(如果当时不在push的分支,就没有问题), 那么push后的结果不会反应在work tree上,  也即在远程仓库的目录下对应的文件还是之前的内容。

使用以下命令即可查看提交的内容
$git reset --hard

回退到当前最新(本地最新)提交的代码信息

时间: 2024-10-24 12:47:42

Git管理本地代码(一)【转】的相关文章

Windows 下使用Git管理Github项目

Git Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.最初由Linus Torvalds编写,用作Linux内核代码的管理.在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中. Github Github是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub.GitHub可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,G

GitBash、EGit、SourceTree三个Git管理工具对比

Git管理工具对比(GitBash.EGit.SourceTree) GitBash是采用命令行的方式对版本进行管理,功能最为灵活强大,但是由于需要手动输入希望修改的文件名,所以相对繁琐. EGit是Eclipse的Git插件,最为纠结的一个软件,因为开发时直操作很方便,尤其是有svn开发情节的人更热衷于这样,不过EGit中有很多bug和不人性化的东西,让人吐血,所以 一句话EGit并不能解决所有Git问题,开发时必须部分依赖于其他Git管理工具.一会一一列举. SourceTree是最近应用的

git 管理

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px "Helvetica Neue"; color: #3e3e3e; background-color: #efefef } span.s1 { } 前言:在git管理前必须得有一个仓库仓库可以是专门的服务器,也可以是一台外网能访问的电脑里做为版本仓库 在这之前 如果您没有自己的版本仓库 搭建一个Gitlab也是一个不错的建议 p.p1 { margin: 0.0px 0.0px 0

windows下使用git管理github项目

在项目版本控制管理中,我想大家都熟悉CVS或着SVN了,对于新兴的git大多人还是抱着观望的态度,本文简单介绍如何在windows下使用git及github仓库管理项目. 第一,下载并安装git 目前windows版本的git有几种实现,但我们选择msysgit发行版,这是目前做得兼容性最好的.下载地址:http://code.google.com/p/msysgit/downloads/list 下载完成后双击安装文件并按照提示完成git的安装.git的安装过程十分简单,安装完毕后会提示你做初

git管理和自动部署项目

当一个项目需要纳入到版本控制的时候,选择的工具还是比较多的,最常见的就是工具有CVS,SVN,GIT等.在平时的开发中视情况而定,从来就没有最好的版本控制工具,只有最适合的工具.在这里我习惯用git来管理自己的项目,当然之前使用svn管理的,但是当用了git工具就不愿意再用其它的工具来管理.这里除了习惯之外,git的很多功能是svn不具备的,最简单的就是离线提交,用git管理的项目你会发现整个项目的大小变化不大,不像svn那样每个目录又有一个.svn 的目录,而且会使项目的变得很大.关于git与

git管理修改

为什么Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件. 新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,甚至创建一个新文件,也算一个修改. 为什么说Git管理的是修改,而不是文件呢?我们还是做实验.第一步,对readme.txt做一个修改,比如加一行内容: $ cat readme.txt Git is a distributed version control system. Git is fre

Git push本地代码到新建远程仓库

   Git  push本地代码到新建远程仓库 来源 http://blog.csdn.net/u011043843/article/details/33336625 1.创建一个新的仓库: 自己传图累死了 借网上图一用 2.在Git bash下创建并初始化本地仓库 3.找到要上传到远程仓库的项目文件,放入到bless目录下面或其子目录下面 .git是git init命令后自动创建的,不用管 4.将远程仓库与本地仓库关联 dwqs/bless.git分别用你们注册的账户名和创建的远程仓库名代替,

Git管理Puppet打造统一配置管理

一.介绍 1)运维工作流程 大数据时代高伸缩性.容错性的特点给运维提出了更高的要求.系统管理不再是疲于安装操作系统.对系统参数进行逐一配置与优化.打补丁.安装软件.配置软件.添加某个服务的时代.为了提高效率.避免重复劳动.减少错误.积累知识,系统管理员都已开始做一些局部的自动化工作.但这些还远不够, 为了满足运维需求,需要统一配置管理. 2)自己实现自动化:git+puppet Puppet采用了非常简单的C/S架构,所有数据的交互都通过SSL进行,以保证安全. Git是一个开源的分布式版本控制

Git管理工具对比(GitBash、EGit、SourceTree)

GitBash是采用命令行的方式对版本进行管理,功能最为灵活强大,但是由于需要手动输入希望修改的文件名,所以相对繁琐. EGit是Eclipse的Git插件,最为纠结的一个软件,因为开发时直操作很方便,尤其是有svn开发情节的人更热衷于这样,不过EGit中有很多bug和不人性化的东西,让人吐血,所以 一句话EGit并不能解决所有Git问题,开发时必须部分依赖于其他Git管理工具.一会一一列举. SourceTree是最近应用的一个软件,一句话概括,既有GitBash的命令行,又有EGit的图形化