git使用简介(第一版)
Git使用教程

Git使用教程原文出处:涂根华的博客一:Git是什么?Git是目前世界上最先进的分布式版本控制系统。
二:SVN与Git的最主要的区别?SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。
集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。
Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。
既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
三:在windows上如何安装Git?msysgit是 windows版的Git,如下:需要从网上下载一个,然后进行默认安装即可。
安装完成后,在开始菜单里面找到“Git –> Git Bash”,如下:会弹出一个类似的命令窗口的东西,就说明Git安装成功。
如下:安装完成后,还需要最后一步设置,在命令行输入如下:因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。
注意:git config –global 参数,有了这个参数,表示你这台机器上所有的Git 仓库都会使用这个配置,当然你也可以对某个仓库指定的不同的用户名和邮箱。
四:如何操作?一:创建版本库。
什么是版本库?版本库又名仓库,英文名repository,你可以简单的理解一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻还可以将文件”还原”。
所以创建一个版本库也非常简单,如下我是D盘–> www下目录下新建一个testgit版本库。
Git版本控制系统的使用方法

Git版本控制系统的使⽤⽅法Git版本控制系统的使⽤⽅法⼀、Git简介Git是⼀个分布式版本控制系统,是⽤来追踪计算机⽂件的变化的⼯具,也是⼀个供多⼈使⽤的协同⼯具。
每个⼈都可以拥有⼀个完整的版本库。
分布式版本控制系统的⼏乎所有操作包括查看提交⽇志、提交、创建⾥程碑和分⽀、合并分⽀、回退等都可以直接在本地完成⽽不需要⽹络连接。
⼆、Git客户端的下载和安装Git官⽅客户端为Git Bash,Git bash是以命令⾏的形式来操作的,另外本使⽤⽅法中可视化软件采⽤了sourcetree,Git bash 和sourcetree的使⽤请⾃⾏选择,⽤户需先下载Git和sourcetree。
1.Git的下载和安装:1) 官⽹地址:https:///doc/3bafbcbf42323968011ca300a6c30c225901f0b6.html /进⼊Git官⽹,由于电脑是Windows系统,选择Downloads for Windows。
2) 右键以管理员⾝份运⾏下载的安装包。
3) 选择安装路径4) ⼀直点击Next按钮,当出现下图情况时选择“Use Windows’default consolewindow”,然后点击“Next”5) 继续点击“Next”,最后点击“Install”,等待安装完成。
6) 在开始菜单中打开Git CMD在CMD中输⼊Git,出现Git的相关提⽰说明安装成功,如下图所⽰:参考⽂档:/doc/3bafbcbf42323968011ca300a6c30c225901f0b6.html /s?id=1601036689157983619&wfr=spider&for=pc2.Sourcetree下载和安装:1)⾸先,下载windows版本的企业版sourceTree。
直接进⼊官⽹https:///doc/3bafbcbf42323968011ca300a6c30c225901f0b6.html /enterprise下载2)进⼊下载保存sourceTree的⽬录,双击SourceTreeEnterpriseSetup_3.0.17.msi⽂件进⾏安装3)安装完成后会出现以下界⾯,这是需要注册Bitbucket账号,但是注册该账号需要连接外⽹,所以⽆法进⾏,下⾯是跳过注册的⽅法。
Git使用总结(包含GitBash和GitGUI的使用)(转自CSDN)

Git使⽤总结(包含GitBash和GitGUI的使⽤)(转⾃CSDN)基本命令初始化设置配置本机的⽤户名和Email地址$ git config --global "Your Name"$ git config --global user.email "email@"创建版本库(仓库)版本库⼜叫仓库(repository),这个⽬录⾥⾯的所有⽂件都可以被Git管理起来,每个⽂件的修改、删除都能被跟踪。
在合适的位置直接⿏标右键创建⼀个空⽬录作为仓库,然后从Git-Bash命令⾏进⼊到该⽬录,或者也可以使⽤命令⾏创建空⽬录,再进⼊到该空⽬录中。
以下给出创建并初始化git仓库的代码:进⼊到仓库的位置,我将仓库放在了C:\Android\git-repositories⽬录下,注意,使⽤cd命令进⼊到⽬录中时,在Git-Bash中应该使⽤斜线”/”,⽽不是反斜线”\”$ cd C:/Android/git-repositories$ mkdir new_repository_1 创建新的⽬录$ cd new_repository_1 进⼊到创建的⽬录使⽤init命令将当前⽬录初始化为Git仓库$ git initInitialized empty Git repository in C:/Android/git-repositories/new_repository_1/.git/(显⽰信息意思为:初始化了⼀个空的Git仓库,new_repository_1⽬录下多了⼀个.git⽬录,时⽤来管理版本库的)将数据提交到git仓库(本地仓库)第⼀步:添加⽂件$ git add . 添加所有的⽂件、⽂件夹$ git add <file> 添加指定名称的⽂件,<>内部写⽂件全称注:如果⽂件没有做出任何修改,则默认不会添加任何⽂件第⼆步:提交⽂件$ git commit –m “commit info” 提交本次事务,即将add的⽂件提交到git仓库,引号内部表⽰本次提交的提⽰信息查询提交状态$ git status 显⽰提交的状态:已经添加,等待提交事务的⽂件(绿⾊字体表⽰);已经改变但是没有添加(not staged)的⽂件(红⾊字体表⽰);查询该⽂件和git仓库中的⽂件的区别,即做了什么修改$ git diff <⽂件全称> 如果已经add了,就打印不出有什么修改了,这⼀步骤应该在add之前,即添加之前可以⽤来看看做了什么修改。
GIT使用入门详细教程

GIT使用入门Part 1第一章基本原理git是一个版本控制系统。
官方的解释是:版本控制(Revision control)是一种软件工程技巧,籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新。
按我的白话文解释就是:一群志同道合的人身处祖国各地,希望来合作开发一个项目,假设这个项目是使用c语言写的(当然用任何语言都可以的)。
那么大家怎么合作呢?用信件?效率太低。
用邮件,不好实现多人沟通。
用googlegroup吧,可开发阶段中的源代码没法科学管理。
用自建的网站吧,需要人力物力财力来支撑阿。
这个时候版本控制系统就派上用场了。
它可以让一个团队里的不同的人在不同地点、不同时间开发和改进同一个项目,并且在大部分的时间里,版本控制系统会聪明的帮你把不同的人在不同地点不同时间修改的代码融合到项目中去。
(当然在一些特殊的情况,还是需要人去决定到底哪些代码需要加入到项目中,这个在后面讨论不迟,先让大家对版本控制有一个好印象,呵呵)知道了版本控制系统的优点之后,下面就要具体实践和体验了。
建议你选用的版本控制系统包括:rcs,cvs,svn,git,Mercurial,Bazzar等等。
当然git,Mercurial和Bazzar都是属于分布式版本控制系统。
下面是一些网友对于这些版本控制系统评论的只言片语:1)svk配合svn可以实现分布式的版本控制。
2) 我是从SVN转到Git下的。
我想Git的优势是速度飞快,谁用谁知道!3) git的确是最快的,bzr慢的要死4) SVN 在windows 下有TortoiseSVN5) git 有Windows 版本,在google code 上的项目。
/p/msysgit/6) 大家可以试试国内提供的git服务。
那么,简单地说,Git 究竟是怎样的一个系统呢?请注意,接下来的内容非常重要,若是理解了Git 的思想和基本的工作原理,用起来就会知其所以然,游刃有余。
在开始学习Git 的时候,请不要尝试把各种概念和其他的版本控制系统诸如Subversion 和Perforce 等相比拟,否则容易混淆每个操作的实际意义。
Git的使用说明

Git的使用说明2011.6.18一,git的简单介绍git是一个快速可扩充的分布式版本控制系统。
Git的绝大部分操作在本地完成,不用和集中的代码管理服务器交互,本地提交为commit,待完成一部分工作觉得有把握提交到服务器则是push。
终于可以随时随地大胆地check in代码了。
只有最终完成的版本才需要向一个中心的集中的代码管理服务器提交。
Git的分支管理branch管理容易多了,无论是建立新的branch,还是在branch之间切换都一条命令完成,不需要建立多余的目录。
二,git的个人本地使用及操作1,创建Git库cd 源码目录git init #初始化在源码目录内生成一个.git的目录2,注册用户信息(网上资料说是必需注册才能使用git工具,局域网内可不注册,直接用主机名,如pengwufeng@ubuntu)git config XXX 用户名git config user.email XXX 用户邮箱git config –list #查看用户信息3,向git库中添加或删除文件git add XX #加单个文件git add . #加所有4,向版本库提交变化git commit #提交(系统会默认让用户添加提交信息)git commit –m “XXXX”#直接添加简单提交信息git status #查看项目状态git log #查看版本信息git log –p #查看版本信息并显示每次修改的diffgit show sdjf974654dd…. #查看指定版本信息#(show后面为每次提交系统自动生成的一串哈希值) git show sdji97 #一般只使用版本号的前几个字符即可5,撤销与恢复git resetgit reset --hard #回到原来编辑的地方#(同样适用于团队对于其他人的修改恢复)git reset --hard sdv143kvf…... #可回到指定的版本#(hard后面为每次提交系统自动生成的一串哈希值)6,向服务器提交变化git push #向服务器提交三,git的团队开发及操作说明:这里假定服务器的用户名为git,服务器IP为192.168.20.22,项目名为android2.1,路经为git的home(即根路径)1,获取项目cd 本地工作目录(自定)git clone 服务器帐户@IP:项目路经这里具体操作为:git clone git@192.168.20.22:android2.1.git2,将服务器项目与本地项目合并cd 本地工作目录git pull注:若产生合并冲突需手工修改后再提交合并3,将本地项目上传至服务器cd 本地工作目录git push注:上传前需先进行git pull 操作,以避免在服务器上存留合并冲突4,合并冲突的说明假设用户A在文件的开头插入一行,同时用户B在文件末尾插入一行,他们都上传了他们的改动。
Git使用教程(项目必备神器)

Git使用教程-----项目必备教程编辑:QJL创建一个仓库,这里我使用的是在www目录下创建了一个haha的文件夹(项目文件)1、步骤如下:haha文件夹-创建一个php文件(demo)——右键git bash here,进行初始化仓库。
2、初始化仓库后,出现 .git 的隐藏文件,所有Git 需要的数据和资源都存放在这个目录中。
不过目前,仅仅是按照既有的结构框架初始化好了里边所有的文件和目录,但我们还没有开始跟踪管理项目中的任何一个文件。
3、从现有库中克隆:这里我在E或者C盘创建分支,执行步骤如下:git clone d:/wamp/www/haha;4、查看当前文件状态,要确定哪些文件当前处于什么状态,可以用git status命令。
如果在克隆仓库之后立即执行此命令,会看到类似这样的输出:d为c。
5、接下来我修改了C盘当中的文件demo.php,添加了6、查看文件状态,如下显示:执行了git status7、出现在“Changes not staged for commit” 这行下面,说明已跟踪文件的内容发生了变化,但还没有放到暂存区。
要暂存这次更新,需要运行git add命令(这是个多功能命令,根据目标文件的状态不同,此命令的效果也不同:可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等)。
现在让我们运行git add将demo.php放到暂存区,然后再看看8、现在两个文件都已暂存,下次提交时就会一并记录到仓库。
假设此时,你想要在demo.php里再加条注释,重新编辑存盘后,准备好提交。
不过且慢,再运行git status看看:9、demo.php文件出现了两次!一次算未暂存,一次算已暂存,这怎么可能呢?好吧,实际上Git 只不过暂存了你运行git add命令时的版本,如果现在提交,那么提交的是添加注释前的版本,而非当前工作目录中的版本。
git使用指南

Git使用指南Li Yanruiv0.1,20080728 liyanrui.m2@前言Git是什么非常简单地说,Git是一个快速、可扩展的分布式版本控制系统,它具有极为丰富的命令集,对内部系统提供了高级操作和完全访问。
所谓版本控制系统(Version Control System),从狭义上来说,它是软件项目开发过程中用于储存我们所写的代码所有修订版本的软件,但事实上我们可以将任何对项目有帮助的文档交付版本控制系统进行管理。
2005年,Torvalds开始着手开发Git是为了作为一种过渡方案来替代BitKeeper,后者之前一直是Linux内核开发人员在使用的版本控制工具,当时由于自由软件社区中的许多人觉得BitKeeper的使用许可证并不适合自由软件社区的工作,因此Linus决定着手开发许可证更为自由灵活的版本控制系统。
尽管最初Git的开发是为了辅助Linux内核开发的过程,但是现在很多其他自由软件项目中也使用了Git实现代码版本管理,譬如,项目、许多的项目、Ruby项目等。
为什么使用版本控制系统版本控制系统是为懒人准备的,它让懒人们比那些善于备份文档的勤劳人拥有更干净的文件系统以及更多的可以活着的时间。
本文档主要内容在第1章中讲述如何使用Git管理自己的个人文档,主要是初步熟悉Git的诸多概念及其日常基本命令的使用。
第2章中主要讲述如何基于Git实现多人协作的项目开发模式,以此扭转当前实验室成员在项目研发中各自为政或不能有效沟通的现状。
第3章讲述如何利用Git强大的项目分支管理功能实现良好风格的项目协同开发模式。
第4章为Git使用之FAQ,用于记载在本实验室推广使用Git过程中诸位同学所遇到的一些细节问题。
Contents第1章使用Git管理个人文档11.1何种文档需要保存11.2建立项目仓库11.3关于建立Git仓库的一些细节31.4仓库与工作树41.5在项目中工作41.6查看版本历史51.7撤销与恢复71.8如何使用Git帮助文档81.9总结8第2章基于Git的团队协同开发92.1两个人如何协同92.2如何解决仓库合并冲突102.3三人以至更多人如何协同122.4M2GE的协同开发132.5总结14第3章项目分支管理153.1如何产生项目分支153.2分支的合并163.3M2GE新的协同开发模式163.4总结17第1章使用Git管理个人文档本章讲述如何使用Git管理我们的个人文档,用以展示Git的一些基本功能,并且秉承学以致用、用以促学的精神,引导大家积极地将Git应用于日常学习与工作中的文档备份。
Git详解之一 Git起步

Git详解之一 Git起步起步本章介绍开始使用Git 前的相关知识。
我们会先了解一些版本控制工具的历史背景,然后试着让Git 在你的系统上跑起来,直到最后配置好,可以正常开始开发工作。
读完本章,你就会明白为什么Git 会如此流行,为什么你应该立即开始使用它。
1.1 关于版本控制什么是版本控制?我真的需要吗?版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。
在本书所展示的例子中,我们仅对保存着软件源代码的文本文件作版本控制管理,但实际上,你可以对任何类型的文件进行版本控制。
如果你是位图形或网页设计师,可能会需要保存某一幅图片或页面布局文件的所有修订版本(这或许是你非常渴望拥有的功能)。
采用版本控制系统(VCS)是个明智的选择。
有了它你就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态。
你可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而导致出现怪异问题,又是谁在何时报告了某个功能缺陷等等。
使用版本控制系统通常还意味着,就算你乱来一气把整个项目中的文件改的改删的删,你也照样可以轻松恢复到原先的样子。
但额外增加的工作量却微乎其微。
本地版本控制系统许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别。
这么做唯一的好处就是简单。
不过坏处也不少:有时候会混淆所在的工作目录,一旦弄错文件丢了数据就没法撤销恢复。
为了解决这个问题,人们很久以前就开发了许多种本地版本控制系统,大多都是采用某种简单的数据库来记录文件的历次更新差异(见图1-1)。
图1-1. 本地版本控制系统其中最流行的一种叫做rcs,现今许多计算机系统上都还看得到它的踪影。
甚至在流行的Mac OS X 系统上安装了开发者工具包之后,也可以使用rcs 命令。
它的工作原理基本上就是保存并管理文件补丁(patch)。
文件补丁是一种特定格式的文本文件,记录着对应文件修订前后的内容变化。
Git的配置与使用

在Windows环境中使用版本管理工具Git2011-5-6•Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。
在推出后,Git在其它项目中也取得了很大成功,目前很多知名项目都使用了Git。
一、为什么选择Git•对于流行的软件版本开源管理软件,元老级的CVS、后来新秀的SVN, GIT的优势又在哪里呢?• 1. 傻瓜都会的初始化,git init, git commit -a, 就完了。
• 2. 绝大部分操作在本地完成,只有最终完成的版本才需要向代码管理服务器提交。
• 3. 每次提交都会对所有代码创建一个全球唯一的commit id。
• 4. branch管理容易多了,无论是建立新的,还是切换都一条命令完成。
• 5. branch之间merge时,不仅代码会merge在一起,check in历史也会保留。
•其他特点:•1、更方便的Merge•2、更方便的管理••3、更健壮的系统•分布式系统一般情况下总是比单服务端的系统要健壮,因为但服务端一旦服务器挂掉了整个系统就不能运行了。
然而分布式系统通常不会因为一两个节点而受到影响。
•4、对网络的依赖性更低•5、更少的“仓库污染”•二. 取得Git, 可以从下面的链接下载得到。
•- windows系统需要安装msysgit /p/msysgit/downloads/list•- Linux需要安装git /download•- MacOSX需要安装git-osx-installer /p/git-osx-installer/downloads/list?can=3三、安装msysgit•双击下载的文件,启动安装过程,都按照默认选项,一路下一步完成安装。
双击git安装程序,即可出现安装窗口选择安装目录选择环境设置选择换行格式下一步继续安装••完成安装•••这个时候已经可以使用git了, 打开git bash可以进入linux shell, 可以使用git命令进行各种操作, 由于大家都习惯使用图形界面的TortoiseSVN, 下面介绍使用TortoiseSVN的类似软件TortoiseGit , 使用习惯相同,大家应该比较容易使用.四、安装tortoisegit•tortoisegit 是TortoiseSVN的Git版本,方便window用户使用图形化界面工具操作Git管理之下版本库。
git详细教程

Contents一、自述 (2)二、白话概念 (3)三、我使用的命令 (4)四、Git的基本使用1—直接在主分支上操作,无需merge,无其他人修改主分支 (5)五、Git基本使用2—重复上面的步骤 (8)六、Git 的基本使用3:---新建工作分支,做改动,然后merge,模拟有人修改master,无冲突 10七、Git的基本使用4:工作分支改动,然后merge,模拟改master,有冲突(同一文件同一行) (15)八、Git 的基本使用5:工作分支改动,然后merge,模拟改master,有冲突(同一文件不同行) (18)九、Git 的基本使用6:---谁动了我的master? (19)十、现在你能分析整个过程吗? (22)Doc name: 《git:菜鸟教菜鸟》Author: Armand WangDate: July 30, 2013E-mail: ww_zidongkong@Any advice rendered would be greatly appreciated. Thank you!版本控制的最大好处就是让你永远可以后悔----某大牛一、自述Git工具结束了‘小作坊’式的生产,我们不在使用copy来保存各个版本,特别是大工程协作开发时,这种方式也是不可行的。
每一次commit产生的snapshot都可以迅速保存当前的版本状态,它使用了如此精妙的算法和数据结构可以像‘照照片’一样快速的记录细微或庞大的改动,你可以通过git log 展示的tag,回到任何一个你想回到版本。
大家都在对master分支上的code进行修改,贡献自己的力量,人与人的想法不同,当修改了同一个地方的时候,就会有冲突。
这样就需要你merge,你对?他对?或者都保留?这取决于你。
恢复版本、分布控制(包括冲突解决)、分支方案,是我认为git的三大特色。
Git是个工具,我们不必要知道它的实现,也不必要了解太多概念,经过运用后形成的感性认识是最重要的,所以我决定写一些自己的直观感受和一己之见,绝非技术博客,倒可以是新手的入门文章,我不保证措辞标准,但是看下去,会用没问题。
Git提交规范及使用说明

Git提交规范及使用说明一.Git提交规范一次提交包含四个信息:commit message -提交的内容相关描述author & committer -作者及提交者changed files -修改的文件hash & parent -提交内容的hash及在提交树上的位置1.提交信息一般包括<header><body><footer>三部分。
<header>是必须的,一般在50个字符之内,其结构为:(其中<scope>可以不写)<type>(<scope>): <short summary>│││││└─⫸ Summary in present tense. Not capitalized. No period at the end.│││└─⫸ Commit Scope:animations|bazel|benchpress|common|compiler|compiler-cli|core...│└─⫸ Commit Type: build|ci|docs|feat|fix|perf|refactor|test<type>表明本次提交的类型,一般有如下几种:build: 涉及构建相关的改动ci: 持续集成相关的改动docs: 文档feat: 新功能fix: bug修复perf: 性能相关改动refactor: 重构相关(非bug、非新功能)test: 测试相关,包括新增测试或者更改已有测试<summary>使用现在时或祈使句。
<body>提交信息的更为详细的描述,与<header>一样也是用祈使句、现在时。
<body>描述本次修改的动机,比如为什么引入本次改动,之前的逻辑是什么,现在的逻辑是什么,本次改动有哪些影响,等等。
《git使用培训》课件

创建和克隆仓库
总结词
创建一个新的仓库或克隆一个现有的仓库是开始使用Git的第二步。
详细描述
要创建一个新的仓库,可以在命令行中进入要创建仓库的目录,然后运行`git init`命令。这将在当前 目录下创建一个新的Git仓库。要克隆一个现有的仓库,可以使用`git clone`命令,后面跟上要克隆的 仓库的URL地址。克隆完成后,你将获得一个与原始仓库完全相同的副本。
高效
通过高效的存储和传输机 制,实现快速的文件同步 和分支创建。
Git的优点
灵活性强
支持各种工作流,如单人 、分支、合并等。
可靠性高
通过散列算法确保数据的 完整性和一致性。
跨平台
可在多种操作系统上运行 ,如Windows、Mac和 Linux。
Git的版本控制流程
01
02
03
04
初始化仓库
创建一个新的Git仓库或克隆 现有的仓库。
Git branch
总结词:管理分支
详细描述:使用`git branch`命令可以管理分支,包括创建分支、切换分支、合 并分支以及删除分支等。该命令有助于用户在开发过程中管理不同阶段的代码, 以便进行并行开发和快速迭代。
05
Git工作流与团队协作
Gitflow工作流
总结词
Gitflow是一种为大型项目设计的分支策略,通过定义 主分支和功能分支来管理代码的提交和合并。
造成不必要的代码冲突。
Git rebase
总结词
Git rebase是一个用于重新应用提交的命令,可以将一 个分支的提交应用到另一个分支上。
详细描述
与合并分支不同,Git rebase通过重新应用提交来避免 线性的提交历史。它可以将一个分支的提交按照另一个 分支的提交顺序重新应用,从而保持一个线性的提交历 史。使用Git rebase可以避免不必要的合并提交,使代 码历史更加清晰易读。但是需要注意的是,Git rebase 会改变提交历史,所以在使用时要谨慎操作,避免误删 或误改代码。
Git基本操作

Git代码状态转换图其中:未被Git跟踪的状态为unstage状态已经被Git跟踪的状态为stage状态,因此包括staging状态和staged状态一基本应用1.安装git的安装除了git core这个东西以外,我们还需要安装git gui和gitk,这些东西后面会方便我们的工作。
ubuntu下:直接采用新立德安装git。
如果使用apt-get,可能会遗漏一些库文件,这里推荐大家将git的一些GUI的工具也安装一下,这样可以更直观的了解我们的版本发展情况。
windows下:也有相应的安装文件,/p/msysgit/downloads/list在这个目录下可以下载到,一般推荐安装这个list里面的第一。
git有一些全局的设置和变量,我们可以通过git config -l去查看这些参数,git在提交修改的时候会记录提交者的姓名和email,这样便于代码的整体管理,安装后我们需要设置一下,我们的一些相关参数,具体设置的命令可以用git config --global "XXXX"去设置全局的作者名和git config --global user.email "XXX"去设置全局的email地址。
设置后,我们在查看每次的修改时,都会显示出这次修改掉作者是谁以及他的mail地址。
后面的命令使用,我们都是基于home目录下的~/gittest进行的,这个目录下面主要有三个文件:1.txt,2.txt,.gitignore这三个文件组成。
想了解具体git命令的使用和说明,我们可以使用git XXX --help命令去显示相应命令的说明文档。
2.建立代码库使用命令:git init在当前目录中运行以完成初始化,随后可以使用git status去查看当前代码库的状态。
这个时候,我们可以看到,我们在自己工程中的,1.txt和.gitignore这二个文件,提示我们他们是untrack的。
git使用整理

第 2 页
பைடு நூலகம்
git使用 - 副本.txt 简单教程: https:///chenwolong/p/GIT.html 特实用 /p/git-guide/ 初始化目录 1、git init 初始化到当前目录 创建master /ytx2014214081/article/details/74854705 2、git add * 创建 3、git commit -m "this is a test,by xie" 到此创建master分支---先commit之后才会真正建立master分支 创建branch 4、git branch lk901_test 创建分支 lk901_test 5、git branch -a 显示所有分支 输出信息: lk901_test * master 6、切换到lk901_test分支:git checkout lk901_test 切换到master分支:git checkout master 删除lk901_test分支:git branch -d lk901_test 6、打印某个文件(test.c)的更新记录:git log -p test.c /qq19414123/article/details/53435591 7、Git中.gitignore文件的使用 生成.gitignore文件,命令:touch .gitignore 新生成的.gitignore内容如下,规则如下9条: “ /*.tar /project/Dvr_CarDV_SDK/tools/DownloadTool_mcrv2/*.tar /project/Dvr_CarDV_SDK/tools/DownloadTool_mcrv2/*SD_CarDV.bin /project/Dvr_CarDV_SDK/tools/DownloadTool_mcrv2/测试bin/* /sourceinsight/* /*.rar /*SD_CarDV.bin /*.bin !*.c ” 8、删除缓存 git rm -r --cached . 然后添加所有文件 git add . 然后commit git commit -m "this is test...by xie" 9、.gitignore文件内容的规则 / 表示目录 比如/A/*就表示忽略A目录下所有内容 * 表示匹配多个字符 上面忽略A目录下所有内容使用的就是*,忽略iml结尾的文件即使用*.iml []表示匹配多个单个字符 [abc]就是代表a、b、c中任何一个字符即可 ! 表示跟踪某类文件 比如 /*,!*.c,表示忽略所有文件,但是跟踪.c结尾的文件,这样.c结尾的文件就不会被忽略了��略了 第 1 页
版本控制工具git使用指南

Contents1前言 (1)2版本控制的基本概念 (2)3GIT里的术语定义 (5)4版本库 (10)5对象记法 (12)6合并之fast forward (13)7混乱之源——index (16)8工作流程 (19)9常用命令简介 (21)10GIT的模块功能 (27)Figures1一个简单的版本演化图4 2Fast forward13 3Fast forward的结果14 4--first-parent的作用15 5--first-parent的失效161前言本文面向有一定版本控制经验的人群,对GIT1有基本了解,如果有Subversion2、Mercurial3等使用经验更好。
文中从工具的原理和设计乃至实现出发,讲述了GIT的用法,并以个人愚见展示了一些GIT不完美的方面。
文章名字本来想戏谑的起名《深入浅出GIT》,意指原理讲的教深(但愿),而具体单个命令用法讲的很浅,因为后者有手册可查,但后来还是觉得有辱没类似名字命名的著作且混乱成语用法的嫌疑,遂作罢。
以前初学GIT不久写过一篇《GIT五分钟教程》,当时以为自己对GIT了解的比较好,但后来在工作中真正的用上GIT后,才发觉还是学习的很肤浅,遇到问题经常觉得无所适从。
GIT秉承了UNIX的优良传统——小工具堆叠,“条条道路通罗马”,可惜我常常不知道哪条路是最好走的。
经过近一年的实战使用,我仍觉得GIT这玩意还是没能运用自如,但总算有些心得体会,记录成文,希望对GIT用户有所帮助。
GIT的命令行界面我觉得至今还是不能让人满意,我比较喜欢Subversion、Mercurial的命令行界面:一致、简洁。
GIT属于那种每个人都想拼命往里面塞功能,每个人都想让GIT具备自己喜欢特性的工具,结果就导致GIT如同Shell编程一般,“一切皆有可能”,虽然是颇有恶趣味,但也常让人厌烦。
这绝不会只是我个人的感受,遍观繁多的GIT包装工具就知道了,而且有一些GIT包装工具的做法被GIT吸收,可以说GIT正在成为一个怪物,一个让人又爱又恨的怪物4,它的运行速度非常快——真的是非常快,它的设计思想非常简洁有效。
idea git的使用方法

idea git的使用方法摘要:1.Git 简介2.Git 的基本操作3.Git 的高级功能4.Git 的常用快捷键5.Git 与其他版本控制系统的比较正文:1.Git 简介Git 是一个分布式版本控制系统,用于追踪文件更改和协调多人之间的工作。
它最初是由Linus Torvalds(Linux 内核的创造者)在2005 年创建的。
Git 被广泛应用于软件开发领域,许多开源项目也采用Git 作为版本控制系统。
2.Git 的基本操作(1)初始化仓库:在使用Git 之前,需要先初始化一个仓库。
在文件夹中执行`git init`命令即可完成初始化。
(2)克隆仓库:如果需要在其他计算机上获取仓库的副本,可以使用`git clone`命令克隆仓库。
(3)添加文件:执行`git add`命令将文件添加到暂存区,以便在下一次提交时将其包含在提交中。
(4)提交更改:使用`git commit`命令将暂存区的更改提交到本地仓库。
(5)查看状态:通过执行`git status`命令可以查看当前仓库的状态,包括已更改但尚未提交的文件、未跟踪的文件等。
(6)查看日志:使用`git log`命令可以查看提交历史,了解项目的提交记录。
(7)回滚更改:如果需要撤销到之前的提交,可以使用`git reset`命令回滚更改。
3.Git 的高级功能(1)分支管理:Git 中的分支用于隔离不同的开发任务。
通过创建不同的分支,开发者可以在各自的分支上进行开发,互不干扰。
合并分支时,可以使用`git merge`命令将一个分支的更改合并到另一个分支。
(2)远程仓库:通过`git remote`命令可以管理远程仓库,包括添加、删除和更新远程仓库等操作。
(3)压缩仓库:使用`git gc`命令可以压缩仓库,减少存储空间占用。
(4)权限管理:Git 支持用户和组级别的权限管理,可以通过`git config`命令设置权限。
4.Git 的常用快捷键(1)查看更改:`git status`(2)查看详细信息:`git log -p`(3)查看文件差异:`git diff`(4)提交更改(简短形式):`git ci`(5)提交更改(详细形式):`git commit -m`(6)查看提交日志:`git log`5.Git 与其他版本控制系统的比较(1)与SVN 相比,Git 具有更快的性能和更简单的操作。
git使用培训PPT课件

Version m
Version …
Version 1
3/25/2020
本地计算机 版本库 Version x
Version …
Version 1
版本服务器 版本库 Version x
Version …
Version 1
33
远程协作(二)
修改Readme.txt 使用git add命令添加Readme.txt 使用git commit提交Readme.txt 使用git pull获取服务器版本库更新 使用git push将Readme.txt保存至版本服务器
在工作目录中点击鼠标右键
.git目录
版本库:暂存区和对象库
3/25/2020
25
第一个提交
创建文件Readme.txt 使用git add命令添加Readme.txt 使用git commit提交Readme.txt
修改文件
修改Readme.txt 使用git add命令添加Readme.txt 使用git commit提交Readme.txt
暂存文件
提交文件
30
本地版本库与服务器版本库(一)
本地计算机
检出
版本库
file
Version 3
Version 2
Version 1
①
git pull
版本服务器 版本库 Version 3
Version 2
Version 1
② git add、commit…
本地计算机
版本库
file
Version m
克隆版本库
示例
版本服务器:gitserver 版本服务器用户:gitusr 版本库:RCMSDoc 本地目录:F:\git
Git入门教程及使用步骤

git入门教程yangjian102621@一、名词解析1.git工作流工作目录 => 缓存区 => 最近提交2.分支分支是用来将特性开发绝缘开来的。
在你创建仓库的时候,master 是“默认的”。
在其他分支上进行开发,完成后再将它们合并到主分支上。
3.二、Git命令行操作●初始化一个git项目cd {project_name}git init●克隆项目git clone {project_url}●添加文件到版本控制git add {filename}git add --allgit add -A●删除文件git rm {filename}●查看当前文件状态git status●提交修改git commit -m “xxx”●推送改变git push {remote} {branch} ●标签git tag 1.0.0 1b2e1d63ff(唯一的提交ID)git push {remote} {tag_name}●添加分支git branch {branch_name}●删除分支git branch -d {branch_name}●切换分支git checkout {branch_name}●更新与合并git pullgit pull {remote} {branch}git merge {branch}●文件比较git diff {source_branch}{target_branch}●替换本地改动git checkout -- {filename}此命令会使用 HEAD 中的最新内容替换掉你的工作目录中的文件。
已添加到缓存区的改动,以及新文件,都不受影响。
假如你想要丢弃你所有的本地改动与提交,可以到服务器上获取最新的版本并将你本地主分支指向到它:git fetch origingit reset --hard origin/master●查看日志git log三、TortoiseGit使用入门一、TortoiseGit安装和设置●安装msysgit,,一直使用默认的选项,知道安装完毕●安装TortoiseGit,先安装一直点下一步到安装完毕●安装TortoiseGit 语言包,,当然英语牛B的哥们这一步飘过●软件设置二、TortoiseGit使用右击任意文件夹,可以看到TortoiseGit已经嵌入右键了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
git使用简介指导老师:邵志远作者:卓达城邮箱: zhuodc@单位:华中科技大学服务计算技术与系统/集群与网格计算实验室简介:作者是华中科技大学2010级计算机学院计算机系统结构专业研究生一、简介:网上找到的git的中文资料,大部分是讲git的命令的使用,对于git的工作流程和如何实现团队合作的介绍少之又少,特别是对于团队代码库管理者的文档,几乎没有,这份文档将从开发者和管理者两方面介绍如何使用git进行团队合作开发。
二、git和svn的差异git和svn最大的差异在于git是分布式的管理方式而svn是集中式的管理方式。
如果不习惯用代码管理工具,可能比较难理解分布式管理和集中式管理的概念。
下面介绍两种工具的工作流程(团队开发),通过阅读下面的工作流程,你将会很好的理解以上两个概念。
集中式管理的工作流程如下图(图2.1):图2.1集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。
所有的版本信息都放在服务器上。
如果脱离了服务器,开发者基本上是不可以工作。
下面举例说明:开始新一天的工作:1:从服务器下载项目组最新代码。
2:进入自己的分支,进行工作,每隔一个小时向服务器自己的分支提交一次代码(很多人都有这个习惯。
因为有时候自己对代码改来改去,最后又想还原到前一个小时的版本,或者看看前一个小时自己修改了那些代码,就需要这样做了)。
3:下班时间快到了,把自己的分支合并到服务器主分支上,一天的工作完成,并反映给服务器。
这就是经典的svn工作流程,从流程上看,有不少缺点,但也有优点。
缺点:1、服务器压力太大,数据库容量暴增。
2、如果不能连接到服务器上,基本上不可以工作,看上面第二步,如果服务器不能连接上,就不能提交,还原,对比等等。
3、不适合开源开发(开发人数非常非常多,但是Google app engine就是用svn的)。
但是一般集中式管理的有非常明确的权限管理机制(例如分支访问限制),可以实现分层管理,从而很好的解决开发人数众多的问题。
优点:1、管理方便,逻辑明确,符合一般人思维习惯。
2、易于管理,集中式服务器更能保证安全性。
3、代码一致性非常高。
4、适合开发人数不多的项目开发。
5、大部分软件配置管理的大学教材都是使用svn和vss。
下面开分布式管理的工作流程,如下图(图2.2):分布式和集中式的最大区别在于开发者可以本地提交。
每个开发者机器上都有一个服务器的数据库。
图2.2就是经典的git开发过程。
步骤如下:一般开发者的角度:1:从服务器上克隆数据库(包括代码和版本信息)到单机上。
2:在自己的机器上创建分支,修改代码。
3:在单机上自己创建的分支上提交代码。
4:在单机上合并分支。
5:新建一个分支,把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。
6:生成补丁(patch),把补丁发送给主开发者。
7:看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。
如果主开发者可以自己解决,或者没有冲突,就通过。
8:一般开发者之间解决冲突的方法,开发者之间可以使用pull命令解决冲突,解决完冲突之后再向主开发者提交补丁。
主开发者的角度(假设主开发者不用开发代码):1:查看邮件或者通过其它方式查看一般开发者的提交状态。
2:打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。
3:向公共服务器提交结果,然后通知所有开发人员。
优点:适合分布式开发,强调个体。
公共服务器压力和数据量都不会太大。
速度快、灵活。
任意两个开发者之间可以很容易的解决冲突。
离线工作。
缺点:资料少(起码中文资料很少)。
学习周期相对而言比较长。
不符合常规思维。
代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
三、git常用命令介绍git init创建一个数据库。
git clone复制一个数据到指定文件夹git add 和git commit把想提交的文件add上,然后commit这些文件到本地数据库。
git pull从服务器下载数据库,并跟自己的数据库合并。
从服务器下载数据库,并放到新分支,不跟自己的数据库合并。
git whatchanged查看两个分支的变化。
git branch创建分支,查看分支,删除分支git checkout切换分支git merge合并分支,把目标分支合并到当前分支git config配置相关信息,例如email和namegit log查看版本历史git show查看版本号对应版本的历史。
如果参数是HEAD查看最新版本。
git tag标定版本号。
git reset恢复到之前的版本----mixed 是git-reset 的默认选项,它的作用是重置索引内容,将其定位到指定的项目版本,而不改变你的工作树中的所有内容,只是提示你有哪些文件还未更新。
--soft 选项既不触动索引的位置,也不改变工作树中的任何内容。
该选项会保留你在工作树中的所有更新并使之处于待提交状态。
相当于再--mixed基础上加上git add .--hard 把整个目录还原到一个版本,包括所有文件。
git push向其他数据库推送自己的数据库。
git status显示当前的状态。
git mv重命名文件或者文件夹。
删除文件或者文件夹。
git help查看帮助,还有几个无关紧要的命令,请自己查看帮助。
四、git开发模式1:大项目开发模式(如图4.1)(不适合我们实验室使用)图4.1对于项目负责人1:初始化对于最终项目负责人:使用git init --bare在公共服务器上建立一个空数据库,在自己的机器上通过git pull 公共服务器ip地址:数据库所在文件夹获得数据库(这里需要设置一下访问权限,由于git没有提供权限管理功能,所以要通过ssh 设置,具体是对下一级子项目经理可读不可写,对自己可读可写)。
新建一些必要的文件夹和文件在放到自己的数据库上新建文件git add .git commit然后使用git push 公共服务器ip地址:数据库所在文件夹master提交到公共服务器上,作为原始版本。
告诉下级公共服务器的地址。
对于子项目负责人:在子公共服务器上克隆一个数据库git clone上级公共服务器ip地址:数据库所在文件夹设置访问权限,对下级可读不可写,对自己可读可写。
在自己的计算机中克隆一个数据库git clone 同级公共服务器ip地址:数据库所在文件夹告诉下级子公共服务器地址。
对于最底层的开发人员:在上级公共服务器中克隆一个数据库git clone上级公共服务器ip地址:数据库所在文件夹2:开展工作对于最终项目负责人收来自下级的邮件在自己的数据库上建分支,并转到分支上git branch tempgit checkout temp打补丁(patch命令)git whatchanged master tempgit add .git commitgit checkout mastergit merge master tempgit push公共服务器ip地址:数据库所在文件夹通知下级人员已经更新重复上述步骤,直到所有补丁打完。
如果发现在合并分支的时候发现有些冲突需要下级项目负责人协助解决的话,可以通知下级项目负责人。
对于子项目负责人:如果上级项目负责人需要他们之间合作解决某些冲突,他们可以通过git fetch 子项目负责人服务器ip地址:数据库所在文件夹master:tempgit merge temp解决冲突git add .git commitgit branch -d temp 删除分支git fetch上级项目公共服务器ip地址:数据库所在文件夹master:tempgit merge temp 保证代码是最新的git diff master temp > patch发补丁给上级解决冲突。
如果上级项目负责人没有要求合作解决冲突,那项目负责人应该做以下事情:git pull 上级项目公共服务器ip地址:数据库所在文件夹解决冲突git push 对应的公共服务器ip地址:数据库所在文件夹通知下级人员服务器已经更新然后项目负责人就开始接收邮件,然后打补丁git branch tempgit checkout temp打补丁(patch命令)git whatchanged master tempgit add .git commitgit checkout mastergit merge tempgit branch -d temp重复上述工作,直到补丁全部打完。
下面是向上级提交更新的过程git fetch 上级项目公共服务器ip地址:数据库所在文件夹master:temp git merge temp 保证代码是最新的。
git diff temp master > patch发邮件提交补丁对于最底层的开发人员:如果上级要求解决冲突,同样是要解决冲突,然后再提交补丁git fetch对应开发人员的服务器ip地址:数据库所在文件夹master:temp git merge temp解决冲突git add .git commitgit branch -d temp 删除分支git fetch上级项目公共服务器ip地址:数据库所在文件夹master:temp git merge temp 保证代码是最新的git diff master temp > patch发补丁给上级如果不用,就从上级服务器更新git pull 上级项目公共服务器ip地址:数据库所在文件夹解决冲突然后建分支,并开发代码git branch xxxgit checkout xxx开发git checkout mastergit merge xxx然后是向上级提交代码git fetch 上级项目公共服务器ip地址:数据库所在文件夹master:temp git merge temp 保证代码是最新的。
git diff temp master > patch发邮件提交补丁以上就是git在大项目开发中的应用。
但是明显是不适合我们实验室的。
原因有三:1、我们学生中没有专门的维护人员。
2、我们学生中没有对全局都很了解架构师。
3、我们的老师可以担当此重任也只有我们的老师有这样的实力,但是老师太忙,没时间每天做这些琐事。
所以我们需要一种新的合作模式(一种没有项目负责人的模式)。
这种模式对开发人员的素质要求很高。
合作模式如下图(图4.2):(适合我们实验室使用)图4.2这种模式的开发流程如下:1、由其中一个开发者这服务器上建立一个数据库。