Git 是一个由林纳斯·托瓦兹为了更好地管理linux内核开发而创立的分布式版本控制/软件配置管理软件。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。 Git 的速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要。 Git 最为出色的是它的合并跟踪(merge tracing)能力。

一.安装GIT

1.源码安装:

从Git官网的下载页面下载最新稳定版源代码,然后编译、安装

$ wget http://kernel.org/pub/software/scm/git/git-1.7.3.5.tar.bz2
$ tar -xjvf git-1.7.3.5.tar.bz2
$ cd git-1.7.3.5
$ make prefix=/usr all ;# 设置Git安装目录
$ sudo make prefix=/usr install ;# 以root权限运行

2.安装包安装:

fedora 等系统

$ yum install git-core 

ubuntu等系统

$ apt-get install git-core

二.设置用户名和密码

$ git config --global user.name flynewton #将用户名设为flynewton
$ git config --global user.email alicool@foxmail.com #将用户邮箱设为alicool@foxmail.com

Git的配置信息分为全局和项目两种,上面命令中带了“--global"参数就是进行全局配置,会影响本机上的每个一个Git项目。

Git也可以为每个项目设定不同的配置信息,进入Git项目所在目录,执行下面的命令:

$ git config user.name xxx#将用户名设为xxx
$ git config user.email xxx@gmail.com #将用户邮箱设为xxx@gmail.com

三.开始使用GIT

1.快速入门

cd hello-git/    #进入项目目录
$ git init   #初始化该项目,建立一个.git隐藏目录用于保存项目目前的进展情况
$ git add .  #建立快照,快照存储在临时存储空间
$ git commit #将快照中的内容写入GIT仓库,输入回车后会进入vi窗口,记录版本和开发情况等,也可以直接git commit -m "log msg"
$ git commit -a #相当于"git add ."+"git commit",但是无法加入新增的文件或文件夹

2.修改源代码后的操作

$ git diff   #查看源代码和快照的区别
$ git diff --cached   #查看快照和仓库的区别
$ git status   #查看整体改动的信息
$ git add hello.py   #告诉git我修改了hello.py文件,请检查下(GIT中无论修改还是增加新文件均使用add进行登记)
$ git commit   #提交到git
$ git log   #查看日志
$ git reset --soft HEAD  #只回退commit的信息,但index file(就是临时存储区域)和修改的代码仍然在
$ git reset --hard HEAD  #不仅回退commit的信息,代码也恢复到修改前的版本
$ git reset --mixed HEAD  #回退commit和index file的信息,保留代码的修改
$ git reset HEAD  #默认情况等同于mixed
$ git reset -- a.py  #从index file中删除一个已经登记的文件

3.分支管理

$ git branch branch-a  #创建branch-a分支
$ git branch   #查看所有分支,其中带*的返回结果为当前分支
$ git checkout branch-a   #切换到branch-a分支
====================================================
修改分支代码
$ git commit hello.py   #提交到分支
====================================================
$ git checkout master   #切换到主干
====================================================
修改主干代码
$ git commit hello.py   #提交到主干
====================================================
$ git checkout branch-a   #切换到branch-a分支
$ git merge branch-a   #将分支合并到主干(如果有冲突会提示冲突的地方,修改后再合并)
$ git branch -d branch-a   #分支内容合并到主干后删除branch-a分支
$ git branch -D branch-a   #不论分支内容是否合并到主干,均删除branch-a分支
$ sudo apt-get install gitk   #安装gitk,gitk可以在图形界面查看所有分支及改动信息
$ gitk   #启动gitk查看分支及改动信息
$ git clone /home/flynewton/hello-git hello-git2   #克隆hello-git到hello-git2中
$ cd hello-git2
==========================================================
$ 修改hello-git2中的源代码并提交
==========================================================
$ 创建分支branch-b,并修改分支中的源码并提交
==========================================================
$ 进入hello-git文件夹中
==========================================================
$ git fetch /home/flynewton/hello-git2 master:hello2-works  #将hello-git2主干代码作为本地的新分支hello2-works
$ git  -p master..hello2-works #查看本地主干和hello2-works分支的差异
==========================================================
$ git pull /home/flynewton/hello-git2 master #合并hello-git2的主干到本地分支
$ git pull /home/flynewton/hello-git2 branch-b #合并hello-git2的分支到本地分支

4.历史记录查询

$ git log #查询历史记录,返回commit 59e67766668f315a3b84beaca709777cdb6c8f09这样的标记码
$ git show 59e67766668f315a3b84beaca709777cdb6c8f09 #查看该commit的记录
$ git tag V1 59e677 #标记为V1
$ git show V1 #查看V1记录
$ git branch branch-c V1 #建立基于V1的分支
$ git log V1..V3 #显示V1至V3的历史记录
$ git log branch-a..branch-b #显示在branch-b但不在branch-a中的历史记录

GIT学习笔记1--基本使用相关推荐

  1. ​​​​​​​Git学习笔记与IntelliJ IDEA整合

    2019独角兽企业重金招聘Python工程师标准>>> Git学习笔记与IntelliJ IDEA整合 一.Git学习笔记(基于Github) 1.安装和配置Git 下载地址:htt ...

  2. Git 学习笔记:自定义Git(完)

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

  3. Git学习笔记:标签管理以及GItHub

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

  4. Git学习笔记:分支管理3

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

  5. Git学习笔记:分支管理(2)

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

  6. Git学习笔记:分支管理(1)

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

  7. Git学习笔记:远程仓库

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

  8. Git学习笔记:修改

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

  9. 取得 Git 仓库 —— Git 学习笔记 04

    取得 Git 仓库 -- Git 学习笔记 04 我认为, Git 的学习分为两大块:一是工作区.索引.本地版本库之间的交互:二是本地版本库和远程版本库之间的交互.第一块是基础,第二块是难点. 下面, ...

  10. Git 的安装与初次使用 —— Git 学习笔记 03

    Git 的安装与初次使用 -- Git 学习笔记 03 Git 的安装与初次使用 -- Git 学习笔记 03 安装 Git 在 Linux 上安装 在 Windows 上安装 初次运行 Git 前的 ...

最新文章

  1. SAP QM 事务代码QE01录入结果后回车,为啥不弹出Manual Valuation窗口?
  2. CentOS 6.x 使用安装光盘作为yum源
  3. RAC安装时需要执行4个脚本及意义
  4. 及上一篇linux安装mysql的说明
  5. OCR磁盘的导出和导入、备份和恢复以及移动(ocrconfig命令的应用)
  6. 用Python做垃圾分类
  7. 通过jQuery源码学习javascript(三)
  8. oracle表空间可以更改吗,如何更改Oracle数据库表的表空间?
  9. 【专项测试】京东“安全测试”
  10. 认知盈余时代,知乎是如何运营的
  11. 如何卸载office201032位_32位office2010卸载不彻底怎么办
  12. CommonAPI编写代码
  13. python下载图片代码_基于Python下载网络图片方法汇总代码实例
  14. colorbox去除close关闭按钮,附上colorbox的基本使用方法
  15. 论微服务架构及其应用
  16. css学习11:font-style字体样式
  17. 快点来学吧!9次Android面试经验总结,已开源
  18. echarts网络拓扑图动态流程图
  19. [git]上传代码到github
  20. Linux系统调用(syscall)原理(转载)

热门文章

  1. 信息学奥赛一本通 1245:不重复地输出数 | OpenJudge NOI 1.11 08:不重复地输出数
  2. 信息学奥赛一本通 1919:【02NOIP普及组】选数 | 洛谷 P1036 [NOIP2002 普及组] 选数
  3. 线性代数 —— 线性递推关系
  4. I NEED A OFFER!(HDU-1203)
  5. 信息学奥赛C++语言:数字卡片
  6. 信息学奥赛C++语言: 素数个数
  7. 信息学奥赛一本通C++语言——1039:判断数正负
  8. 15 MM配置-BP业务伙伴-定义供应商主记录的编号范围
  9. mysql安装权限_mysql 新安装时的权限
  10. 如何制定客户留存策略_企业如何制定数字化转型策略?