工作后——Git的使用总结
Posted 长不大的大灰狼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工作后——Git的使用总结相关的知识,希望对你有一定的参考价值。
工作后——Git的使用总结
一、Git简介、安装及初步配置
1、版本控制分类
- 本地版本控制: 每次文件更新,可以对文件做一个快照,或是记录补丁文件。
- 集中版本控制:所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改,一旦服务器损坏,就会丢失所有数据。比如:SVN
- 分布式版本控制:所有版本信息全部同步到本地的每个用户,这样就可以在本地查看所有版本历史,可以离线在本地提交,只需在连网时push到相应的服务器。当服务器损坏时,只要有一个用户的设备没有问题就可以恢复所有的数据。比如:Git
2、版本控制工具git的作用
- 版本控制:利用git来开发,可以进行版本回退。
- 协同开发:多人分模块共同完成一个项目,是每个程序猿的必备技能。
git教程:Git教程
3、Git安装
首先要安装:git for windows(git的命令行版本),也可以使用淘宝镜像进行下载:http://npm.taobao.org/mirrors/git-for-windows/
接着再安装:tortoise git(git的图形界面)
注意:
两个工具安装完毕后, 需要重启电脑才能正确使用.
4、Git初步配置
(1)设置用户名和邮箱
在gitbash命令行下进行配置用户名和邮箱。用户名和邮箱需要与远程仓库一致。
git config --global user.name "Jery"
git config --global user.email "Jerry@qq.com"
注意:
- 配置文件为.gitconfig
- 一般可以作为远程仓库的平台有:Gitee、Github、Gitlab等等。
(2)配置SSH公钥
配置了公钥之后你的机器和 github 通信的时候 ,github 就可以通过公钥识别出你是可信赖用户,这样就不需要每次 git 和 github 通信的时候都要输入密码了。同时,也保证了数据传输的安全性。
生成SSH Key:ssh-keygen –t rsa –C "你的邮箱@xx.com"
弹出选项时,一路回车即可。
将生成的公钥信息(/root/.ssh/id_rsa.pub
中的文本),添加到远程仓库的公钥中即可:
5、Git理论
(1) Git本地有四个工作区域:
-
工作目录(Working Directory):平时存放项目的文件夹
-
暂存区(Stage) : 暂时存放修改的文件
-
本地仓库(Repository) :保存了所有版本的数据
-
远程的git仓库(Remote Directory): 托管代码的服务器
(2) Git的工作流程:
- 在工作目录中添加或者修改文件;
- 将需要进行版本管理的文件放入暂存区(
git add .
) - 将暂存区中的文件提交到本地仓库(
git commit -m " 描述"
) - 上传到远程仓库(
git push
)
注意:
git add xx文件名
,将某个文件提交到暂存区;
git add .
将所有未提交的文件提交到暂存区;
二、与远程仓库建立连接
1、先有本地库
先有本地库,后有远程库,需要先将本地库push到远程库。
(1)创建本地仓库
在需要创建仓库的文件夹下输入命令,将当前目录变为仓库。
git init
注意:
创建好后会有一个,git文件,仓库的版本信息都在这个文件里面
(2)与远程仓库建立连接
git remote add origin 远程仓库地址 #和远程仓库建立连接
git remote -v # 查看当前仓库的连接信息
git remote rm origin # 解除本地和远程的绑定关系
注意:
origin是远程仓库的名字
远程仓库地址如下:
2、先有远程库
先有远程库,后有本地库,从远程库clone到本地库。
从远程库克隆到本地:
git clone 网站上的仓库地址
注意:
如果选择SSH协议,必须将Ubuntu的公钥添加到GitHub上。
三、tortoise git的使用
1、创建仓库并填写仓库信息
注意:
- 选中Initialize,会在创建项目时新建一个Readme文件,用来做项目说明
- 在gitignore中填写Java可以滤除项目中的一些不必要文件如.class等
2、克隆
在创建好的项目中点击Clone or download,可以看到HTTPS对应的地址,我们可以利用该地址进行clone或者download。
(1) 复制刚才创建好的项目的链接
(2) 打开指定的需要放置项目的目录
(3) 右击目录, 点击Git Clone
(4) 在弹出的对话框中输入刚才复制的项目链接即可.
项目中的文件下载成功, 会出现绿色图标.
3、对本地项目文件进行版本管理
(1)提交给git管理
右键项目文件,点击TortoiseGit>>>Add,然后选择需要管理的文件。
此时文件变为红色感叹号,表示文件已被git管理,但是未提交内容。
(2)将修改内容提交到本地
每提交一次, 就是一个版本. 比如开发完某个功能模块, 就可以进行提交. 后续进行版本回退都是以提交的版本为准.
红色叹号文件右键,点击Git Commit -> “master”…
此时弹出了一个对话框. 可以在此处看到需要提交哪些文件, 以及每个文件的具体改动情况. 并且需要输入提交日志Message. 描述这次提交的具体改动原因是什么. 这个日志是后续进行版本回退的重要参考依据.
点击commit完成提交。
注意:
- 此时只是提交到本地, Github 上还看不到代码变更.
(3)将项目提交到服务器
提交的内容需要同步到服务器上, 才能在Github上看到。 右键需要提交的目录, 点击TortoiseGit->push。
此时刷新GitHub页面就可以看到我们提交的目录了。
四、IDEA集成Git
1、基本操作
(1)将git集成进IDEA开发工具
(2)使用IDEA连接Git远程仓库
此时idea中自动出现了git相关的操作以及控制面板:
不推荐使用git操作按钮,我们直接在 terminal面板 进行操作即可(add、commit、push)
git add hello.java //将hello.java添加到暂存区
git add . //将所有未暂存的添加到暂存区
git commit -m "hello测试文件" //将变动提交到本地仓库
git push //将本地仓库提交到gitHab
2、协同开发——分支管理
(1)新建分支
当前在哪个分支上,新建出来的分支就是基于哪个分支建立的。
新建的分支commit/push后,会在gitee上显示出来:
(2)切换分支
(3)commit/push/历史版本记录:
(4) 合并分支
Merge:切换到主分支,将主分支的最新变化pull到本地,然后切换回自己的分支进行commit后就可以进行Merge合并操作了。
左边是自己维护的分支,右边是主分支,中间是最后合并后的结果。红色代表两方都改动了同一片代码,存在冲突;绿色代表新增代码,双方没有冲突;蓝色代表原代码一方有改动。
五、常用命令
基本查看命令:
git --version #查看git的版本信息
git config -l #查看配置
git status [filename] #查看指定文件状态
git status #查询仓库状态
连接命令
git init #创建本地仓库
git remote add origin 远程仓库地址 #和远程仓库建立连接
git remote -v #查看当前仓库的连接信息
git remote rm origin #解除本地和远程的绑定关系
git clone [url] #克隆
基本操作
git add 文件名 #将文件添加到暂存区
git add . #将所有改动的文件添加到暂存区
git commit –m "描述"`#将暂存区提交到本地仓库
版本信息
git log #查看仓库历史记录
git diff 文件名 #比较文件差异(在git add之前使用)
git reflog #查看所有版本的commit ID
#HEAD0,HEAD1即为版本ID
撤销命令:
git checkout -- 文件名 #撤销工作区的修改
git reset HEAD 文件名 #撤销暂存区的修改
git reset --hard 该版本ID #回退到历史版本
git reset --hard HEAD^ #回退到上个版本
注意:
- 版本回退,也是以commit为基准的。
- 上上版本是
HEAD^^
,也可用HEAD~2
表示,以此类推。
分支常用命名:
git branch # 列出所有本地分支
git branch -r # 列出所有远程分支
git branch -a #列出所有分支
git branch [branch-name] # 新建一个分支,但依然停留在当前分支
git checkout -b [branch] # 新建一个分支,并切换到该分支
git checkout branchName #切换分支
git checkout -f branchName #强制切换分支
git merge [branch] # 合并指定分支到当前分支
git branch -d [branch-name] # 删除分支
git push origin --delete [branch-name] # 删除远程分支
以上是关于工作后——Git的使用总结的主要内容,如果未能解决你的问题,请参考以下文章