Git 属于分布式版本控制系统( Distributed Version Control System,简称 DVCS )客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份。更进一步,许多这类系统都可以指定和若干不同的远端代码仓库进行交互。籍此,你就可以在同一个项目中,分别和不同工作小组的人相互协作。你可以根据需要设定不同的协作流程。

Git 的基本工作流程:
1. 在工作目录中修改某些文件。 
2. 对这些修改了的文件作快照,并保存到暂存区域。 
3. 提交更新,将保存在暂存区域的文件快照转储到 git 目录中。

Git简单使用

// 创建服务器代码仓库

sudo useradd git
sudo passwd git

sudo mkdir -p /var/git.server/project1
cd /var/git.server
sudo chown git project1
sudo chgrp git project1

// 建立忽略
cd project1
$ cat > .gitignore << end
> *.[oa]
> *.so
> *~
> !a.so
> test
> tmp/
> end

sudo su git
sudo git --bare init

// 客户端使用

// 从服务器克隆代码库
git clone git@192.168.1.X:/var/git.server/project1 project1
git add a.txt //  添加新增文件
git add .     //  添加新增文件
git commit -am "New Commit" // 提交版本
git commit --amend -am "Rename New Commit" // 重新提交,更改注释

git checkout -b abeen // 创建abeen分支
git branch                   // 查看所有分支
git checkout master   // 切回master分支
git merge abeen              // 合并abeen分支到master

git pull origin master// 从服务器刷新最新代码
git push origin master// 将代码刷新到服务器
git reset HEAD^             // 恢复到上次提交状态(HEAD^、HEAD~4、commit-id、tag)
git status                         // 查看当前track状态
git log                             // 查看提交日志
git log -3                        // 查看最后三条提交日志
git log -3 --stat            // 显示简单的统计信息    
git log -l -p                 // 显示修改的详细信息

// 阶段性版本
git tag v0.9 // 创建标签
git tag          // 显示所有标签
git log v0.9 // 用标签显示提交状态
git show --stat v0.9 // 用标签显示提交基本信息

git rm filename                              // 删除代码库里的文件
git checkout HEAD^ -- filename // 恢复文件
git rm --cache filename              // 只从代码库删除文件,工作目录文件成未跟踪状态
git checkout HEAD^ -- filename // 签出以前的某个版本 
git mv filename dirname              // 移动文件
git show filename                          // 查看某个提交版本的具体信息 
git diff HEAd^ filename              // 比较版本差异

git reset -hard commit_id //恢复之前版本

远程仓库

git remote // 查看当前远程库

git remote -v (verbose简写)// 显示对应的克隆地址

git remote add [shortname] [ulr] // 添加远程仓库

git fetch [remote-name]  // 获取远程仓库信息

git push origin master // 推送数据到远程仓库

git remote show [remote-name] // 显示远程仓库信息

git remote rename pb paul // 修改远程仓库对应名称

git remote rm paul  // 删除远程仓库

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

更多内容请参考《Pro Git》

[Linux] Git: 基本使用的更多相关文章

  1. linux git 推送空文件夹

    /********************************************************************************* * linux git 推送空文件 ...

  2. Linux git 在自己的服务器上建立 git 仓库(repository)

    Linux git 在自己的服务器上建立 git 仓库(repository) 服务器端: 在这里使用 ssh 方式登陆: ssh [username]@server_address(建议用超级用户登 ...

  3. Linux Git服务器安装

    ① 安装 Git ② 服务器端创建 git 用户,用来管理 Git 服务,并为 git 用户设置密码 ③ 服务器端创建 Git 仓库 ④ 客户端 clone 远程仓库 ⑤ 客户端创建 SSH 公钥和私 ...

  4. Linux GIT服务器配置

    Linux下安装git插件 1. 下载git网址:     https://github.com/git/git/releases 2. 放入usr/src/下 3. tar -zxvf git-** ...

  5. linux git 安装方法

    最早Git是在Linux上开发的,很长一段时间内,Git也只能在Linux和Unix系统上跑.不过,慢慢地有人把它移植到了Windows上.现在,Git可以在Linux.Unix.Mac和Window ...

  6. Linux git 关联 github仓库

    背景: 由于最近学习Spring cloud docker 一键部署, 需要把github仓库项目, 放在Linux上面启动, (以下位置在/root/目录中执行)步骤, 1:安装 git >y ...

  7. Linux+Git命令

    Linux 文件与目录 cd命令: $ cd [path] //path为路径名称,这只是常规语法 1 详细用法如下: $ cd /d //进入d盘 $ cd d: //进入d盘 $ cd D: // ...

  8. linux git保存用户名密码(避免每次push输用户名密码)

    Linux/Unix/Mac 系统 新建一个 ~/.netrc 文件, 将 git 服务器, 用户名以及密码记录在这个文件, 如下所示:   machine your-git-server   log ...

  9. [linux] Git基本概念&操作

    1.基本概念 版本控制系统:一种软体工程技巧,籍以在开发的过程中,确保由不同人所编写的同一项目代码都得到更新.并追踪.记录整个开发过程. 集中式(SVN)/ 分布式(GIT)版本控制系统:SVN的版本 ...

  10. 26. Linux GIT

    windows git 下载链接: Msysgit   https://git-scm.com/download/win 1 进入git bash进行第一次配置 git config --global ...

随机推荐

  1. Unity3d之音效播放和调用手机震动

    http://blog.csdn.net/sunshine_1984/article/details/12943979 今天研究了下Unity3d音效播放相关内容,整理下实现细节. 1,添加音效文件到 ...

  2. 集合类 Collection

    1.Collection接口有两个子接口: List:保存元素顺序的线性表,允许有重复元素. Set:不记录元素的保存顺序,不允许有重复元素.数学中的集合 Collection接口中的方法如下: Co ...

  3. Windows Server

    1. Windows Server 在试用license过期后会出现2小时一次的关机.如果暂时无法注册或者激活,下面的方法可以试试 taskkill /f /im wlms.exe ping -n 1 ...

  4. vim使用指北 ---- Global Replacement

    一般替换 s/old/new   --- 替换当前行的第一个匹配项 s/old/new/g ---- 替换当前行所有的匹配项 number1,number2-s/old/new/g  ---- 替换从 ...

  5. Chrome 开发工具指南

    Chrome 开发工具指南 谷歌 Chrome 开发工具,是基于谷歌浏览器内含的一套网页制作和调试工具.开发者工具允许网页开发者深入浏览器和网页应用程序的内部.该工具可以有效地追踪布局问题,设置 Ja ...

  6. win7 64 + Ubuntu 14.04.1 64双系统安装,详解UEFI ~ GPT和legacy ~ MBR区别

    win7 64 + Ubuntu 14.04.1 64双系统安装 背景:我的笔记本之前的系统是window 7 64 + Ubuntu 14.04.1,用UEFI引导系统.安装过程是先装的win7,再 ...

  7. RHadoop计算平台搭建

     原创文章,转载请注明: 转载自www.cnblogs.com/tovin/p/3824554.html 本文基于CentOS6.4系统介绍基于RHadoop平台的搭建,Hadoop的搭建可以参考ht ...

  8. React组件生命周期-正确执行初始化阶段的函数

    一. 二.代码 <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset=&quo ...

  9. WebService另一种轻量级实现—Hessian 学习笔记

    最近和同事聊天,得知他们在使用一种叫做Hessian的WebService实现方式实现远 程方法调用,是轻量级的,不依赖JavaEE容器,同时也是二进制数据格式传输,效率比SOAP的XML方式要高.感 ...

  10. Data Flow ->> Raw File Source & Raw File Destination

    Raw File Source & Raw File Destination一般用在当有某个package在导入数据或者处理数据需要花费非常长的时间的情况下,可以通过把一些处理好的数据先存到r ...