目录
2、将java工程中.gitignore 文件也加入到暂存区
一、Git与SVN最主要区别
Git是版本控制工具,常见的还有SVN,CVS,VSS,TFS
SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而工作的时候,用的都是自己的电脑,所以首先要从中央服务器得到最新的版本,然后工作,完成工作后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,对网络带宽要求较高。
Git是分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候不需要联网了,因为版本都在自己电脑上。协同的方法是这样的:比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
二、Git工作流程
一般工作流程如下:
- 从远程仓库中克隆 Git 资源作为本地仓库。
- 从本地仓库中checkout代码然后进行代码修改
- 在提交前先将代码提交到暂存区。
- 提交修改。提交到本地仓库。本地仓库中保存修改的各个历史版本。
- 在修改完成后,需要和团队成员共享代码时,可以将代码push到远程仓库。
下图展示了 Git 的工作流程:
二、Git创建本地仓库
选择一个空文件夹
1、右击鼠标使用GIt GUi Here图形化界面
2、右击鼠标输入命令:git init
3、右击选择 前提是装好tortoisegit工具
弹窗直接点击确认就创建好了本地仓库。
git本地仓库创建完成 后,当前目录下会出现一个.git的文件夹
三、git本地仓库中的操作
1、Git 工作区、暂存区和版本库
工作区:就是你在电脑里能看到的目录。包含.git的目录是工作区
暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。
2、向本地仓库添加文件
在工作区随便创建一个文件,然后如下图
添加成功后:此时文件 已经从工作区--->暂存区
右击文件选择提交:此时文件从暂存区--->本地仓库 提交时必须要写日志信息
3、如何修改本地仓库中的文件
方式一:修改工作区的文件,再添加到暂存区,再提交到本地仓库
方式二:使用tortoisegit工具 修改完本地文件后,右击文件直接提交
1、查看提交日志:
2、比较版本差异
现在就可以查看不同版本之间的差异了
3、 查看本地仓库的文件
右击-->tortoisegit-->版本库浏览器
4、删除本地仓库的文件
1、删除工作区和本地仓库的该文件
先删除工作区的文件(此时本地仓库的文件并没有删除),然后提交,本地仓库的文件就会删除
2、删除本地仓库改文件,并不删除工作区的该文件
右击--->tortoisegit--->删除并保留副本-->再次提交 此时本地仓库中已删除,但是当前工作区并没有删除
5、将java工程提交到本地仓库
java工程必须在工作区才能提交到本地仓库
1、先添加到暂存区
添加完成后忽略不想提交到本地仓库的文件
2、将java工程中.gitignore 文件也加入到暂存区
这样其他人把该项目下载到他的本地也会忽略.idea和out文件
3、将java项目提交到本地仓库
提交完成后浏览本地仓库中的该java工程,已将out和.idea文件夹忽略
四、在github上创建仓库和基本操作
1、创建远程仓库
2、选择不同的同步方式将本地仓库推到远程仓库
此时远程仓库已将创建完成Github支持两种同步方式“https”和“ssh”。如果使用https很简单基本不需要配置就可以使用,但是每次提交代码和下载代码时都需要输入用户名和密码。如果使用ssh方式就需要客户端先生成一个密钥对,即一个公钥一个私钥。然后还需要把公钥放到githib的服务器上。
1、使用ssh方式同步
在本地工作区使用命令行生成ssh秘钥对
秘钥对生成的默认位置在当前用户的.shh文件夹下
密钥生成后需要在github上配置密钥本地才可以顺利访问
此时ssh秘钥已经添加完成,现在我们就不需要输入用户名和密码就可以和远程仓库进行通信了,接下来将本地仓库的内容推送到远程
方式一:使用命令
现在已经将本地仓库推送到远程仓库了
方式二:使用tortoisegit工具
本地工作区右击--->同步-->管理-->建立远程连接信息 这个操作相当于命令第一行
创建好连接信息后,点击推送
2、使用HTTPS方式同步
此方式同步需要用户名和密码
3、从远处仓库中克隆
1、使用git clone git@github.com:Rk-x/-2.git
2、使用工具 右击--->克隆
五、分支
1、创建合并分支
在我们每次的提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD指针严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。
一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点:
每次提交,master分支都会向前移动一步,这样,随着你不断提交,master分支的线也越来越长。当我们创建新的分支,例如dev时,Git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上:
创建分支:右击--->tortoisegit--->创建分支 名字为dev1
创建完成后右已经变为了dev1
分支切换:右击--->tortoisegit--->切换/检出
如果在master分支上更新,dev1分支上更新,就会产生分叉,也可以让分支进行合并和删除 如果同一个文件在合并分支时都被修改了则会引起冲突:解决的办法是我们可以修改冲突文件后重新提交!
六、在IntelliJ IDEA中使用git
1、在Idea中配置git
1、添加git
2、在菜单中选择“vcs”→Import into Version Control→Create Git Repository.
然后选择该项目工程的上一级目录创建git
3、添加成功后显示相关工具条
现在idea中的代码自动存储在暂存区
点击commit按钮,将项目提交到本地仓库
2、使用Idea克隆仓库并同步代码
1、将本地代码上传到远程仓库
在github上创建一个仓库然后将本地仓库推送到远程。在工程上点击右键,选择git→Repository→push,或者在菜单中选择vcs→git→push
填写ssh的url不用登录 https需要登录
2、从远程仓库克隆
3、 从服务端拉取代码