1. Git 安装:
下载地址: https://git-scm.com/download/
2. Git 结构
- 工作区
- 暂存区
- 本地库
3. Git 初始化本地库
git init
4. Git 设置签名
- 目的:区分代码都是谁提交的,方便团队之间合作
- 级别:
- 项目级别:
git config user.name XXX
;git config user.email xxxx@qq.com
- 系统用户级别 :
git config --global user.name XXX
;git config --global user.email xxxx@qq.com
- 优先级: 就近原则
- 项目级别:
- 项目级别的设置的签名可以在该项目的目录下的.git/config文件中看到,系统用户级别的配置可以在桌面的隐藏文件.gitconfig 中看到
4. Git 添加、提交、查看状态
- 查看状态:
git status
,查看工作区、暂存区的状态 - 添加:
git add FileName
把工作的文件添加到暂存区 - 提交:
gti commit -m "commit message" FileName
,把暂存区的文件提交到本地库
5. 版本的前进、后退
- 查看文件的日志:
git log
: 显示的信息较为完整,多屏展示时,空格向下翻页,B向上翻页git --pretty=oneline
: 显示的形式更漂亮简洁了git --oneline:
显示形式简洁,更适合回退版本的操作,只显示当前以及以前的日志git reflog
: 显示的信息增加了几个,HEAD{移动到该版本的步数}
- 版本前进、回退:
- 基于索引值的操作
git reset --hard 哈希值
:工作区、暂存区、本地库一起回退git reset --mixed 哈希值
:本地库和暂存区一起回退git reset --soft 哈希值
:本地库回退
- 基于^操作:
git reset -- hard HEAD^^^
,有几个^回退几步(这个操作只会后退) - 基于~操作:
git reset --hard HEAD~3
,在~后面直接加回退几步就可以。(这个操作只会后退)
- 基于索引值的操作
6.删除文件的找回
- 前提:删除前,文件曾经存在于本地库
- 在本地库中删除的文件,类似与版本回退的操作,将HEAD指针回退到建立的文件时,就能找回文件
- 命令:
git reset --hard 【指针位置】
7.比较文件
git diff [文件名]
工作区与暂存区比较git diff HEAD [文件名]
可以与本地库和历史版本的文件进行比较
8.分支操作
git branch -v
:显示有哪个分支git branch [分支名]
:创建新分支git checkout [分支名]
:切换分支git merge
:- 首先,需要切换到被合并的分支上
- 然后
git merge [另一个分支名]
- 产生冲突
- 情况:两个分支在开发时都可进行修改,如果修改是同一个文件的同一行会产生冲突
- 解决办法:手动解决,哈哈哈 ?
9.在本地创建远程库地址的别名
git remote -v
:显示远程库的地址信息git remote add [远程库地址]
10. 推送操作
git push orgin master
11.克隆操作
git clone [远程库地址]
克隆操作后,也会把这个库的配置信息下载下来,比如会有一个.git文件,git remote -v
还有这个远程库的配置信息.
12.邀请其它用户加入团队成员
- 在远程仓库中有个Setting → \to → Collaborators :添加其他用户进该项目组
- 加入该团队后就有写的权限了,也就是拉取远程项目,修改后就可以有权限进行推送了。
13.远程库的修改的拉取
git fetch [远程库地址别名][远程分支名]
:将远程库的文件拉取下来后,并没修改本地库的文件,需要切换分支后,查看内容。git merge [远程库地址别名][远程分支名]
,将本地库与下载的远程库进行合并
14.协同开发时冲突的解决
- 这和分支冲突的解决类似,同一个用户组的不同用户,对其项目进行修改相同的行的内容时,github以先提交的项目内容保存,而后来用户提交时,会产生冲突。
- 根据提示的信息修改文件信息即可。
15.跨团队协作
- 不在组的用户,首先进行
fork
别的项目 clone
到本地库,进行修改,修改完成后push
到自己的远程库- 在远程库中进行
pull Request
, - 在项目中的主用户可以根据修改的情况进行
merge
16.SSH名密码用户
ssh-keygen -t rsa -C [github邮箱]
在自己的电脑上产生一个SSH的密钥,产生了私钥和公钥。- 将公钥添加到github的Setting,SSh and GPG keys中,即可
18.Eclipse中Git插件的简介
- Eclipse中有内置的Git插件
- 可以在Windows → \to → Preferences → \to →Team → \to → Git → \to → Configration`,进行配置本地库范围的签名
- 在Eclipse中把工程初始化为本地库,工程 → \to →右键 → \to →Team → \to →Share Team…
- Eclipse 配置忽略的配置从而忽略一些特定的文件(Eclipse为了管理我们创建的工程而维护的文件和开发的代码没有直接关系,最好不要在Git中进行追踪,也就是把他们忽略)
- Github 官网样例文件:https://github.com/github/gitignore/
- 之后就和命令行的操作差不多了
- 关于从github上拉取项目的道理也相同,使用pull进行拉取,再转换成maven的形式。