1.本地库初始化
命令:git init
效果:
注意:.git目录中存放的是本地库相关的子目录和文件,不要删除,也不要胡乱修改。
2.设置签名
命令: 项目级别/仓库级别:仅在当前本地库范围内有效
git config user.name tom_pro
git config user.email goodMorning_pro@atguigu.com
信息保存位置: ./.git/config 文件
系统用户级别: 登录当前操作系统的用户范围
git config --global user.name tom_glb
git config --global user.email goodMorning_pro@atguigu.com
信息保存位置: ~(家目录)/.gitconfig 文件
级别优先级:项目级别优先于系统用户级别
二者都没有不允许
3.基本操作:
1)状态查看操作: git status 查看工作区、暂存区状态
2)添加操作:git add [file name] 将工作区的”新建/修改“ 添加到暂存区
3)提交操作: git commit -m "commit message" [file name] 将暂存区的内容提交到本地库
4)查看历史记录:git log 多屏显示控制方式 : 空格向下翻页 b 向上翻页 q 退出
git log --pretty=oneline/git log --oneline(只显示过去) 简洁显示历史记录
git reflog(过去未来都显示) HEAD@{移动到当前版本需要多少步}
5)前进后退: 基于索引值操作[推荐] git reset --hard [局部索引值]
使用^符号: 只能后退
git reset --hard HEAD^
注:n个^表示后退n步
使用~符号:只能后退
git reset --hard HEAD~n
注: 表示后退n步
6)reset命令的三个参数对比:
--soft参数:仅仅在本地库移动HEAD指针
--mixed参数:在本库移动HEAD指针并且重置暂存区
--hard参数: 在本地库移动HEAD指针,重置暂存区和工作区
7)删除文件并找回
前提:删除前,文件存在时的状态提交到了本地库。
操作:git reset -hard HEAD [指针位置]
删除操作已经提交到本地库:指针位置指向历史记录
删除操作尚未提交到本地库:指针位置使用HEAD
8)比较文件差异
git diff [文件名] 将工作区中的文件和暂存区进行比较
git diff[本地库中历史版本] [文件名] 将工作区中的文件和本地库历史记录比较
不带文件名,比较多个文件
4.分支管理:
1)同时并行推进多个功能开发,提高开发效率
2)各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。
失败的分支删除重新开始即可。
3) 创建分支: git branch [分支名]
查看分支: git branch -v
切换分支:git checkout [分支名]
合并分支: 第一步:切换到接收修改的分支(被合并,增加新内容)上 git checkout[将要被合并分支名]
第二步:执行merge命令 git merge [外来新内容分支名]
解决冲突: 第一步:编辑文件,删除特殊符号
第二步:把文件修改到满意的程度,保存退出
第三步:git add [文件名]
第四步:git commit -m "日志信息"
注意:此时commit一定不能带具体文件名
5. GitHub操作:
1) 查看当前所有远程地址别名:git remote -v
2)在本地创建远程库地址别名:git remote add [别名] [远程地址]
3)推送:git push [别名] [分支名]
4)克隆:git clone [远程地址]
效果:完整的把远程库下载到本地
创建远程库地址别名
初始化本地库
5) 拉取: pull=fetch+merge
git fetch [远程库地址别名] [远程分支名]
git merge [远程库地址别名]/[远程分支名]
6)协同开发时冲突的解决:如果不是基于GitHub远程库的最新版所做的修改,不能推送,必须先拉取。
拉取下来后如果进入冲突状态,则按照"分支冲突解决"操作解决即可。
7) 跨团队协作:本地修改,然后推送到远程
Pull Request
New pull request
Create pull request
Merge pull request 点击这里合并代码
将远程库修改拉取到本地
8)SSH免密登录
进入到当前用户的家目录
cd ~
删除.ssh 目录 rm -rvf .ssh
生成ssh密钥目录 ssh-keygen -t rsa -C [邮箱地址]
进入.ssh目录查看文件列表
cd .ssh
查看id_rsa.pub文件内容
cat id_rsa.pub
复制文件内容,登录github,点击用户头像-Settings-SSH and GPG keys
New SSH Key
输入复制的密钥信息
回到Git bash 创建远程地址别名
git remote add origin_ssh [SSH克隆地址]
推送文件进行测试
6.Eclipse 操作
1)工程初始化为本地库 工程-右键-Team-Share Project
勾选 Use or create......,然后Create Repository
2)Eclipse中忽略文件
概念:Eclipse特定文件 这些都是eclispe为了管理我们创建的工程而维护的文件,和开发的代码没有直接关系。
最好不要在Git中进行追踪,也就是把它们忽略。
.classpath文件 .project文件 .settings目录下所有文件
为什么要忽略Eclipse特定文件呢?
因为同一个团队中很难保证大家使用相同的IDE工具,而IDE工具不同时,相关工程特定文件就可能不同。如果这些文件加入版本控制,那么开发时很可能需要为了这些文件解决冲突。
在~/.gitconfig文件中引入java.gitignore文件
[core]
excludesfile = C:/Users/DELL/java.gitignore
注意:这里路径一定要是/不能是\
3)克隆到本地并生成特定文件:import...-Git-Projects from Git 右键项目-configure-convert to maven project(生成有特定文件的eclipse工程)