草庐IT

版本控制器-git的安装

胤要努力学习 2023-04-04 原文

1.什么是Git

Git是一个免费的、分布式的版本控制工具,或是一个强调了速度快的源代码管理工具

1.2关于版本控制

什么是版本控制?版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。在本文所展示的例子中,我们仅对保存着软件源代码的文本文件作版本控制管理,但实际上,你可以对任何类型的文件进行版本控制。

1.3Git内文件的三种状态

对于任何一个文件,在 Git 内都只有三种状态:已提交(committed),已修改(modified)和已暂存(staged)。

已提交表示该文件已经被安全地保存在本地数据库中了;

已修改表示修改了某个文件,但还没有提交保存;

已暂存表示把已修改的文件放在下次提交时要保存的清单中。

Git 管理项目时,文件流转的三个工作区域:Git 的工作目录,暂存区域,以及本地仓库。

 1.4Git工作流程

1.在工作目录中修改某些文件。

2.对修改后的文件进行快照,然后保存到暂存区域。

3.提交更新,将保存在暂存区域的文件快照永久转储到 Git 目录中。

所以,我们可以从文件所处的位置来判断状态:如果是 Git 目录中保存着的特定版本文件,就属于已提交状态;如果作了修改并已放入暂存区域,就属于已暂存状态;如果自上次取出后,作了修改但还没有放到暂存区域,就是已修改状态。

已提交(committed):表示数据文件已经顺利提交到Git版本库中。

已修改(modified):表示数据文件已经被修改,但未被保存到Git版本库中。

已暂存(staged):表示数据文件已经被修改,并会在下次提交时提交到Git版本库中。

2搭建Git服务器


2.1环境 

2.2软件安装

安装方法有两种:

一、yum命令安装,此方法简单,并且会自动安装依赖的包,而且会从源里安装最新的版本,不过不一定是git最新的。

二、源码安装,这个要比yum方式较麻烦点,不过过程还是比较清晰的,毕竟源码安装也比较普遍了。

本文采用yum方式安装git,操作如下:

[root@cong11 ~]# yum install -y git

[root@cong12 ~]# yum install -y git

查看git版本

[root@localhost ~]# git --version 

3 git使用

3.1服务用户创建空仓库

3.1.1创建git账号

[root@cong11 ~]# useradd git

[root@cong11 ~]# passwd git 

3.1.2创建版本库

[root@cong11 ~]# su git  #切换到git用户

[git@cong11 ~]$ mkdir project.git
[git@cong11 ~]$ ls


project.git

[git@cong11 ~]$ cd project.git/
[git@cong11 project.git]$ git init --bare #初始化仓库
初始化空的 Git 版本库于 /home/git/project.git/

3.2linux客户端初始化测试

3.2.1创建工作目录

[root@cong12 ~]# mkdir git

3.2.2拉取到本地库

[root@cong12 ~]# cd git

[root@cong12 git]# git clone git@192.168.1.11:/home/git/project.git

[root@cong12 git]# ll

total 0
drwxr-xr-x. 3 root root 18 Jun 24 22:31 project

3.2.3给本地新项目添加文件

给project项目添加一个文件

[root@cong12 project]# echo " NO.1">1.thml 
[root@cong12 project]# git status


# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       1.thml
nothing added to commit but untracked files present (use "git add" to track)

第一次查看,这个文件还没有添加到暂存区的

3.2.4 添加到暂存区

使用git add把新建的文件加到git缓冲区

[root@cong12 project]# git add 1.thml

然后在查看状态

[root@cong12 project]# git status

# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#       new file:   1.thml
#

有添加,那就有删除

它也提示你了

git rm --cached readme

3.2.5提交到本地仓库

使用git commit把缓存区的文件添加到本地仓库

[root@cong12 project]# git commit -m "NO.1"

*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'root@cong12.(none)')

然后它会提示你设置邮箱和姓名,我们设置一下邮箱和姓名

[root@cong12 project]# git config --global user.email "2890679012qq.com"
[root@cong12 project]# git config --global user.name "lisi"

然后我们重新提交到本地仓库

[root@cong12 project]# git commit -m "NO.1"

[master (root-commit) be1e6d3] NO.1
 1 file changed, 1 insertion(+)
 create mode 100644 1.thml

3.2.6 git log查看日志

[root@cong12 project]# git log、

commit be1e6d33038e8ccb73875009c1868321ba590891
Author: lisi <2890679012qq.com>
Date:   Sat Jun 25 08:16:48 2022 +0800

到目前为止自己本地仓库就提交结束了。之后就是提交到远程仓库

3.2.7 git remote -v查看本地仓库状态和仓库信息

[root@cong12 project]# git remote -v

origin  git@192.168.1.11:/home/git/project.git (fetch)
origin  git@192.168.1.11:/home/git/project.git (push)

 

origin表示的是远程仓库的别名,以后提交代码的时候只需要使用origin这个别名即可

3.2.8git push把本地仓库代码推送到远程仓库

[root@cong12 project]# git push origin master

git@192.168.1.11's password: 
Counting objects: 3, done.
Writing objects: 100% (3/3), 204 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@192.168.1.11:/home/git/project.git
 * [new branch]      master -> master

上面就是一个标准的代码提交的过程,到此自己创建的文件就推到了远程的git仓库了。

4Git的初始化

4.1git clone git init

git clone: 这是较为简单的一种初始化方式,当你已经有一个远程的Git版本库,只需要在本地克隆一份

例如:

[root@cong12 ~]# mkdir -p /var/www/html   //git仓库目录

[root@cong12 ~]# git clone git@192.168.1.11:/home/git/project.git /var/www/html/

说明:'git clone git@192.168.1.11:/home/git/project.git  /var/www/html/'命令就是将' git@192.168.1.11:/home/git/project.git '这个URL地址的远程版本库完全克隆到本地/var/www/html/目录下面

git init和git remote:这种方式稍微复杂一些,当你本地创建了一个工作目录,你可以进入这个目录,使用git init命令进行初始化,Git以后就会对该目录下的文件进行版本控制。这时候如果你需要将它放到远程服务器上,此时你就可以利用 git remote add 命令来增加一个远程服务器端,例如' git remote add test ssh://git@192.168.1.11/home/git/project.git '这条命令就会增加URL地址为' ssh://git@192.168.1.11/home/git/project.git ',名称为test的远程服务器,以后提交代码的时候只需要使用test别名即可。

例如:

[root@cong12 ~]# mkdir /git_test

[root@cong12 ~]# git init  /git_test   //初始化git,指定git仓库路径,同时也是工作目录。

[root@cong12 ~]# cd /git_test/

[root@cong12 git_test]# git remote add test ssh://git@192.168.1.11/home/git/project.git  //添加远程库

[root@cong12 git_test]# git remote -v

test ssh://git@192.168.1.11/home/git/project.git (fetch)

test ssh://git@192.168.1.11/home/git/project.git (push)

4.2Git 基本命令

上面都有说过下面就简单了解一下

git pull:从版本库(既可以是远程的也可以是本地的)将代码拉到本地

git add:将所有改动的文件(新增和有变动的)放在暂存区,由git进行管理

git rm:从当前的工作空间中和索引(暂存区)中删除文件

git commit:提交当前工作空间的修改内容到本地仓库

git push:将本地commit的代码更新到远程版本库中,例如'git push origin branchname'就会将本地的代码更新到名为orgin的远程版本库中branchname分支

git log:查看历史日志

有关版本控制器-git的安装的更多相关文章

  1. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

  2. ruby - 完全离线安装RVM - 2

    我打算为ruby​​脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn

  3. ruby-on-rails - rails 目前在重启后没有安装 - 2

    我有一个奇怪的问题:我在rvm上安装了ruby​​onrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(

  4. ruby - 如何为 emacs 安装 ruby​​-mode - 2

    我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby​​提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs

  5. ruby-on-rails - 无法在centos上安装therubyracer(V8和GCC出错) - 2

    我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e

  6. Ruby Readline 在向上箭头上使控制台崩溃 - 2

    当我在Rails控制台中按向上或向左箭头时,出现此错误:irb(main):001:0>/Users/me/.rvm/gems/ruby-2.0.0-p247/gems/rb-readline-0.4.2/lib/rbreadline.rb:4269:in`blockin_rl_dispatch_subseq':invalidbytesequenceinUTF-8(ArgumentError)我使用rvm来管理我的ruby​​安装。我正在使用=>ruby-2.0.0-p247[x86_64]我使用bundle来管理我的gem,并且我有rb-readline(0.4.2)(人们推荐的最少

  7. ruby - 通过 RVM (OSX Mountain Lion) 安装 Ruby 2.0.0-p247 时遇到问题 - 2

    我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search

  8. ruby-on-rails - 项目升级后 Pow 不会更改 ruby​​ 版本 - 2

    我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby​​版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby​​版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘

  9. ruby - 如何在 Lion 上安装 Xcode 4.6,需要用 RVM 升级 ruby - 2

    我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121

  10. ruby - Fast-stemmer 安装问题 - 2

    由于fast-stemmer的问题,我很难安装我想要的任何ruby​​gem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=

随机推荐