Git的使用——安装/添加/删除/历史记录/命令记录的操作

https://git-scm.com
http://www.runoob.com/manual/git-guide/

Git分布式版本控制系统。
SVN集中式和Git分布式版本控制系统有什么区别呢?
集中式:
1、必须联网,且带宽够大,速度够快;
2、依赖控制系统的中央服务器,如果中央服务器出了问题,则没法干活;

分布式:
1、没有中央服务器的概念,每台电脑都是一个完整的版本库,互相不依赖;
2、提交时才需要联网处理修改的文件;

Git工作原理
Git管理的是修改(如新增文件、新增字符、删除文件、删除字符、修改字符等),而不是文件。
1、概念
工作区:个人电脑里的文件夹目录。
版本库:工作区的隐藏目录.git。
暂存区:版本库里的stage,或index。
分支:版本库里自动创建的唯一一个master分支。branch。
HEAD:


2、操作命令执行
步骤1 添加文件 git add (git add . 或git add 文件名称),即把工作区的文件添加到版本库中的暂存区;
步骤2 提交文件 git commit (git commit -m "说明"),即把版本库中暂存区的所有内容提交到当前分支;
步骤3 删除文件 git rm (git rm 文件名称),即把版本库当前分支的文件删除;
步骤4 提交到远程仓库 git push(git push origin master)

Git的安装
1、在Linux上安装Git:sudo apt-get install git
2、Mac OS X上安装Git:
方法1
安装homebrew,然后通过homebrew安装Git,具体方法请参考homebrew的文档:http://brew.sh/

// 安装  
brew install git  
// 检测git是否安装成功:  
git --version  
// 显示当前git的路径  
which git  

方法2
安装Xcode,Xcode集成了Git,不过默认没有安装,你需要运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择“Command Line Tools”,点“Install”就可以完成安装了。
Git的配置
1、指定用户名:git config --global user.name "Your Name"。如:

git config --global user.name "devZhang"  

2、指定邮件地址:git config --global user.email "email@example.com"。如:

git config --global user.email "xxxx@163.com"  

如何取消设置?

Git的使用仓库,也叫版本库repository,即文件管理(修改、删除)的目录1、创建目录步骤1、创建存放文件的目录:mkdir 目录名。

mkdir learnGit  

步骤2、进入目录:cd 目录名。如:

cd learnGit  

步骤3、查看目录路径:pwd。如:

pwd  


2、将目录变成git可以管理的仓库
步骤1、git init。如:

git init  

创建成功后,目录下会多一个Git用来跟踪管理版本库的 .git 的目录。注意:空目录,或已经有资料的目录都可以创建Git仓库。



3、把文件添加到版本库
注意:Git版本库只能管理以纯文本(txt文件、网页、程序代码等)编写的文件,而图片文件,或音视频文件则只知道如从100KB变成120KB的改变,而不像知道文本文件第几行新增,或修改,或删除了某个单词这么详细。
步骤1、把文件添加到仓库:git add 文件名。如:

git add learnGit.txt  
// .表示所有修改,或添加的文件  
git add .  

步骤2、把文件提交到仓库:git commit -m 备注。如:

git commit -m “添加文件learnGit.txt”  

步骤3、把文件提交到服务器:git push。如:

git push origin master  

4、查看仓库状态
步骤1、仓库当前的状态:git status步骤2、仓库文件修改内容:git diff,或git diff 文件名。如:

git diff  
// 或  
git diff learnGit.txt  

5、查看仓库记录
显示从最近到最远的提交日志。
步骤1、历史记录:git log。如:

git log  

或单行历史记录:git log --pretty=oneline。

git log --pretty=oneline  

6、查看命令历史
显示每一次命令的记录。
步骤1、命令历史:git reflog。如:

git reflog  


7、版本回退
版本回退,上个版本head,上上个版本head^,……,100个版本head~100。
步骤1 回退版本:git reset —-hard HEAD版本,或git reset —-hard 版本号。如:

// 上个版本  
git reset —-hard HEAD^  
// 上上个版本  
git reset —-hard HEAD^^  
// 或指定版本号  
git reset —-hard 655645645。

8、修改撤销
情况1、文件修改后但没有add到暂存区时,即在工作区中修改的可以撤销;
情况2、文件add到暂存区后做了修改时,即在暂存区中修改的可以撤销;
步骤1、撤销修改内容:git checkout —- 文件名称。如:

git checkout —- learnGit.txt  

9、暂存区的修改回退到工作区
步骤1、git reset HEAD 文件名称。如:

git reset HEAD learnGit.txt  

10、删除文件
先将文件从目录文件夹中删除,再从版本库中删除
步骤1、删除文件:git rm 文件名称。如:

git rm test.txt  

步骤2、提交删除文件:git commit -m 备注。如:

git commit -m “remove file:test.txt”  

11、设置版本号
(1)添加本地版本号

git tag x.x.x -m "版本号说明"  

或添加标签(记录某人某时打的标签)

git tag -a vx.x.x -m "版本号说明"  

(2)提交到远程仓库:

git push origin master --tags  

(3)查看所有版本号:

git tag  

(4)删除本地版本号

// 格式:git tag -d x.x.x,示例  
git tag -d 1.0.2  

// 提交到远程仓库,即把与之对应的远程仓库的版本号也删除  
// 格式(注意冒号前有个空格):git push origin :x.x.x,示例:  
git push origin :1.0.2  

12、其他
(1)查看修改详情

git show  
// 或  
git log -p  

(2)查看某个文件的包含提交人员,日期、版本号等记录信息,不包括修改详情

git whatchanged  

13、git分支
(1)查看分支信息

// 本地分支  
git branch   
// 远程分支   
git branch -a  

(2)创建分支

git branch branchName   
// 示例  
git branch IMTeam  

(3)切换分支

git checkout branchName   
// 示例  
git checkout IMTeam  

(4)合并分支:git merge 合并时,先切换回主干

// 切换回主分支  
git checkout master  
// 合并分支到主干  
git merge IMTeam  

(5)创建并切换分支

git checkout -b branchName  
// 示例  
git checkout -b IMTeam  

(6)删除本地分支

git branch -d branchName   
// 示例  
git branch -d IMTeam  

(7)删除远程分支

git branch -r -d origin/分支名称   
git push origin :分支名称  

(8)本地工作区的分支提交到远程仓库

git push origin 分支名称  

注意:
(1)通常远程仓库分支不会一起下载下来,如果要进行分支开发,可以这样设置 git checkout -b 分支名 origin/分支名。另外再次说明,分支可以是本地分支,也可以是远程仓库分支,本地分支要提交到远程仓库时,可以使用语句 git push origin 分支名称。
(2)使用地址下载源码后,进行切换分支则当前操作的源码只会对分支源码有影响,即下载的源码目录也会跟着分支改变。合并分支时,先将分支的修改提交到缓存区(git add . ; git commit -m “xxx”),然后切换回主干(git checkout master),接着进行合并(git merge IMTeam),最后再次将主干的修改进行提交(git add . ; git commit -m “xxx”)。
具体步骤如下:
a)查看分支:git branch
b)查看状态:git status
c)提交:git add . ; git commit -m “说明”
d)先切换回主分支:git checkout master
e)查看状态:git status——无变化
f)合并分支:git merge IMTeam
g)查看状态:git status——有变化
h)提交:git add . ; git commit -m “说明”
i)提交:git push

14、查看远程仓库信息

git remote  

显示更详细的远程仓库信息

git remote -v  

15、本地仓库与远程仓库的关联

  • 存在远程仓库DemoTest,但没有在终端通过命令 git clone 远程仓库地址"克隆到本地
  • 在本地创建与远程仓库同名称的目录DemoTest
    • 通过终端命令 cd .... 进入本地目录路径DemoTest
    • 通过终端命令 git init 将本地目录DemoTest初始化成一个代码仓库
  • 本地代码仓库关联远程仓库,在终端使用命令 git remote add 远程仓库地址"
  • 查看 git remote
  • 将远程仓库代码克隆到本地代码仓库 git pull origin master

注意事项:
1、远程仓库源码下载到电脑A,电脑B;
2、电脑A中进行修改,但没有提交到远程仓库;
3、电脑B中进行修改,且提交到了远程仓库;
4、再次对电脑A进行操作时,需要将远程仓库中的最新源码下载到电脑A中;
5、查看电脑A中是否有变更操作(git status),有变更时,需要把在工作区中的变更提交到缓存区(git add . git commit -m "说明");
6、提交到缓冲区后,再将远程仓库的最新源码下载到本地缓冲区(git pull);
7、查看源码是否存在冲突,有冲突时解决冲突,并重新提交到缓存区(git add . git commit -m "说明");
8、解决冲突后,或没有冲突时,再将电脑A中的源码提交到远程仓库(git push origin master);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容