Git入门:安装环境 版本回退 仓库实战 搭建git服务端

备份MBR:dd  if=/dev/sda of=/data/mbr.dump bs=512 count=1

恢复MBR:dd  if=/data/mbr.dump of=/dev/sda bs=446 count=1      --- 小 Q

---------------------------------------------------------------------------------------------------

Git:Linus开发分布式版本控制系统,和Linux文件系统完美结合,win需要cygwin才可完美工作;

1、优秀案例,github.com,作为仓库,实验起来很顺手;

2、开发者可以git到线上仓库至本地,操作更改上传很是方便;

3、功能的使用,命令操作很简单。目前趋势来说:git是版本管理系统的潮流方向。

【搭建环境】

1、安装并初始化仓库

Centos:yum install -y epel-release ; yum install -y git

Ubuntu:sudo apt-get install git

windows:https://git-for-windows.github.io

mkdir  /home/gitroot

cd  /home/gitroot

git init   //初始化为git仓库,生成.git目录

2、提交文件到仓库
echo -e "123\naaa\n456\nbbb" > 1.txt
git  add 1.txt  //把1.txt添加到仓库中

git  status    //查看本地库的状态
git  commit -m "add new file 1.txt"   //把1.txt提交到仓库,-m添加文件描述

初始使用该命令会提示:
*** Please tell me who you are.
Run
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
to set your account‘s default identity.
Omit --global to set the identity only in this repository.

这是要让我们设置用户邮箱和用户名。根据它提示设置一下即可:
git  config --global user.email "你的邮箱"
git  config --global user.name "要使用的名字"

echo -e "111111\n2222222222" >> 1.txt  //先更改一下1.txt
git  status    //查看当前仓库中的状态,比如是否有改动的文件
git  diff  1.txt  //可以对比1.txt本次修改了什么内容,相比较仓库里面的版本

到此为止,一些简单常用的命令,也就熟悉了一些。

【版本回退】

实验版本回退功能,首先要多提交几次仓库更新内容,即变动仓库,执行add 和 commit。

查看日志:git  log

显示所有:git  reflog

逐行查看:git  log --pretty=oneline

指定版本回退:git reset --hard e261f7e15   //在对文件commit提交后,想要撤回的操作

add之后回退:git reset HEAD 1.txt   //在对1.txt更改并add后,想要撤回的操作

add之前回退:git checkout -- 1.txt  //只更改了文件,还未add,想要撤回的操作

提交后删除仓库的文件:

echo  "5555555555"  >> 3.txt

git  add  3.txt

git  commit  -m  "add new file 3.txt"

rm  -f  3.txt

git  rm  3.txt

git  commit  -m  "delect file 3.txt"

【仓库实战】

1、连接远程仓库

如今用的最多的是https://github.com ,我们也先登录注册一个账号,之后创建一个仓库,

我们在下载克隆仓库的时候,都会指定路径,如右上有两种可选方式http和ssh,如果用http需要关闭防火墙等,一般我们比较推荐ssh方式,既然是ssh协议,就要把客户端公钥复制过来;

右上角点自己头像,选settings,选SSH and GPG keys,选New SSH key,将公钥粘贴在这。

把本地的仓库推送到远程仓库:

mkdir  /home/test

cd  /home/test

git  init

git  remote add origin https://github.com/Shanwn-git/test.git  //建立连接

echo "564646" > 1.txt

git  add 1.txt

git  commit -m "add 1.txt"

git  push -u origin master  //把本地库推送到远程服务端,第二次可直接使用 git push

error:The requested URL returned error: 403 Forbidden while accessing https://github.com/Shanwn-git/test.git/info/refs
解决:vim  .git/config

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
#       url =    #将访问换为ssh协议地址即可 
        url = [email protected]:Shanwn-git/test.git
        fetch = +refs/heads/*:refs/remotes/origin/*

此时即可在github服务端查看test仓库中已经存在了1.txt文件

扩展:有时我们看懂了别人的仓库有好东西,想克隆到本地,之后是上传到自己的仓库,如下:

git  clone  git://xxxxx

git  push  -u origin master  //错误:git://xxxx是以只读方式获取代码,无法直接进行push

git  clone  [email protected]

git  push  -u origin master  //正确:不过这种方式需要输入git仓库的密码

2、分支管理

分支是版本管理很重要的概念,用法:

创建分支:git  branch  teng

查看分支:git  branch

切换分支:git  checkout  teng

删除分支:git  branch  -d  teng // git branch -D teng

合并分支:git  merge  test  //把test分支内容,合并到了master主支

注:如果master和test分支同时编辑了文件1,合并时冲突了,则需要先处理冲突再合并;

主分支贯穿所有分支,主分支操作可实时同步至分支,但分支却不能实时更新至主分支和其他分支。

原则上:master分支不可操作,创建dev分支专门用作开发,在dev创建bob分支派给各开发人员。

git  checkout  dev  //先切换到dev分支

git  merge  bob  //将bob分支合到dev分支

查看远程库信息:git remote -v

查看远程分支:git  ls-remote  origin  //origin由远程库信息得到

连接远程分支:git  checkout  -b branch1  origin/branch1 //服务端建立分支,名字最好对应

拉取远程分支:git  pull

下图是分支的创建删除和切换,以及github创建分支:

3、标签管理

标签类似于快照功能,我们可以给版本库打一个标签,记录版本库状态,便于恢复。

切换分支:git  checkout  master

打标签:git  tag  v1.0

查标签:git  show  v1.0

看标签:git  tag   //tag是针对commit来打标签的,so可针对历史commit打tag

版本日志:git  log --pretty=oneline  --abbrev-commit

针对日志打标签:git  tag  v1.1  46dc8r1da

对标签进行描述:git  tag  -a v1.2  -m "this is a tag v1.3"   46dc8r1da

删除标签:git  tag -d  v1.3

推送标签:git  push origin v1.0

推送所有:git  push --tag  origin

如果本地的标签删除了,也想把远程服务端标签删除,执行如下;

git  tag  v1.3  -d

git  push  origin  :refs/tags/v1.3

4、git 别名

类似于Linux的别名alias,用来提高工作效率,可写到文件,随时拷贝到所用机器:

checkout:git  config --global alias.co checkout

commit:git  config --global alias.ci commit

branch:git  config --global alias.br branch

取消别名:git  config --global --unset alias br

查看别名:git  config --list |grep alias

查询log小技巧:

git config --global alias.lg "log --color --graph --pretty=format:‘%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset‘ --abbrev-commit"

5、保留现场

这个功能不太常用,简单说一下:当你正进行一个项目时,突然运营找了过来,说线上有个东西bug了,需要马上处理,你又不想提交进行了一半的工作,若不提交,就会一直保留一个git状态,看起来很不舒服。此时我们就需要保留现场

保留现场:git  stash

恢复现场:git  stash  apply

查看现场:git  stash  list

指定恢复:git  stash  apply  [email protected]{1}

【搭建git服务器】

虽然github很强大,但终归公开的,私有仓库又要花钱买,所以可以的话搭建属于公司的私有仓库。

服务器端:

yum install -y git

useradd -s /usr/bin/git-shell  git   //添加git用户,并不让git用户远程登录

cd  /home/git

mkdir  .ssh

touch  .ssh/suthorized_keys

chown  -R git.git .ssh

chmod  600 .ssh/authorized_keys

//然后将客户端的公钥放进去,测试登陆一下,会出现A shell字样,实在不放心可以先改git用户权限

//usermod -s  /bin/bash,然后登陆试试

选择作为仓库的目录

mkdir  /data/git

cd  /data/git

git init --bare sample.git  //创建裸仓库,没有工作区,只为共享。大家可以实验比较区别

chown -R  git.git sample.git

客户端:

首先要将公钥拷贝到服务端keys文件;

克隆仓库:git  clone  [email protected]:/data/git/sample.git

//之后就和服务端仓库建立连接,开始上传版本等。

---------------------------------------------------------------------------------------------------

时间: 2024-10-23 02:06:01

Git入门:安装环境 版本回退 仓库实战 搭建git服务端的相关文章

三、记一次失败的 CAS 搭建 之 服务端配置

========================================================================================================= Setp3:Tomcat与cas服务端进行绑定操作::参考:http://www.open-open.com/lib/view/open1392018954614.html =========================================================

Git秘籍:在 Git 中进行版本回退

导读 在这篇文章中,你将学到如何查看项目中的历史版本,如何进行版本回退,以及如何创建 Git 分支以便你可以大胆尝试而不会出现问题.快来试试吧. 在你的 Git 项目的历史中,你的位置就像是摇滚专辑中的一个片段,由一个被称为 HEAD 的 标记来确定(如磁带录音机或录音播放器的播放头).要在你的 Git 时间线上前后移动 HEAD ,需要使用 git checkout 命令. git checkout 命令的使用方式有两种.最常见的用途是从一个以前的提交中恢复文件,你也可以整个倒回磁带,切换到另

Git 系列(四):在 Git 中进行版本回退

在这篇文章中,你将学到如何查看项目中的历史版本,如何进行版本回退,以及如何创建 Git 分支以便你可以大胆尝试而不会出现问题. 在你的 Git 项目的历史中,你的位置就像是摇滚专辑中的一个片段,由一个被称为 HEAD 的 标记来确定(如磁带录音机或录音播放器的播放头).要在你的 Git 时间线上前后移动 HEAD ,需要使用 git checkout 命令. git checkout 命令的使用方式有两种.最常见的用途是从一个以前的提交中恢复文件,你也可以整个倒回磁带,切换到另一个分支. 恢复一

Git -- 基本操作 之 版本回退

现在,你已经学会了修改文件,然后把修改提交到Git版本库,现在,再练习一次,修改readme.txt文件如下: Git is a distributed version control system. Git is free software distributed under the GPL. 然后尝试提交: $ git add readme.txt $ git commit -m "append GPL" [master 3628164] append GPL 1 file cha

git中的版本回退

git版本回退有两种情况,一种是从本地版本库中(head区)回退到某个版本,可以用命令 git reset --hard head^ 或git reset --hard head~x ,head指的是当前版本,head^指的是回退到上一个版本,head~x,x为任意大于0的数字,表示回退到当前版本的前x个版本.(如果你从最新的版本库回退到某个版本的时候又反悔了还是想回到最新的版本库,可以用git reflog命令找到每次操作的id,然后用命令git reset --hard id可以回到对应的版

git 入门教程之1分钟快速了解 git

git 入门教程 git 是分布式版本控制系统,是文本文档管理的利器,是帮助你管理文件动态的好帮手. 如果你曾经手动管理过文档,一定有这样的经历,比如你正在编辑文档,想删除某段落,又担心不久后可能会恢复,此时你可能会先备份然后再删除,或者想要修改某段落,几经修改后发现还是最初的比较好,这是就哭笑不得了... 从最初的新建文档,经过反反复复的修改,最终定稿文档的过程极其繁琐冗长,这就是手动式管理文档的痛点. 如果有这么一种工具,能帮我自动记录每次文档的改动,想要查看文档变更详情只需要打开软件就能一

SVN版本服务器搭建(服务端+客户端)

环境:Win7 32 bit SVN简介:程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本. Subversion是一个自由/开源的版本控制系统,一组文件存放在中心版本库,记录每一次文件和目录的修改,Subversion允许把数据恢复到早期版本,或是检查数据修改的历史,Subversion可以通过网络访问它的版本库,从而使用户在不同的电脑上进行操作. VisualSVNServer集成了Subversion和Apa

Centos7.2搭建SVN服务端完整配置

SVN是版本控制subversion的简称主要功能是对文档[java,conf,shell,PPT]多人协作办公 服务端 192.168.2.100 安装软件#yum -y install subversion 创建仓科目录 #mkdir  /var/svn/                  //普通目录#svnadmin create /var/svn/project    //创建仓库 导入一些文档 配置文件 shell java或php脚本 #cd /usr/lib/systemd/sy

阿里云ESC搭建SVN服务端

CentOS7)下yum命令快速安装svn服务端,学习在思考中独孤中度过,在孤独中进取! 01.SVN服务的安装(subversion) 02.ESC安全组策略 1.在线安装svn服务 $ sudo yum install subversion 测试安装是否成功: $ svnserve --version 2. 建立版本库 创建svn数据目录(subversion默认是把/var/svn作为数据根目录的,开机启动默认也是从这里): $ sudo mkdir -p /svn_root/ 创建版本库