- 目录
1.Git操作入门
1.1Git基本工作流程 本地仓库
1.2Git命令行操作
-
git常用命令
命令 作用 git init 初始化,创建 git 仓库 git status 查看 git 状态 (文件是否进行了添加、提交操作)(添加到暂存区,提交到历史仓库) git add 文件名 添加,将指定文件添加到暂存区 git commit -m '提交信息' 提交,将暂存区文件提交到历史仓库 git log 查看日志( git 提交的历史日志) -
操作步骤
1.创建工作目录、初始化本地git仓库
2.新建一个test.txt文件(暂不执行添加操作) -
3.使用status命令,查看状态
4.使用add命令添加,并查看状态
5.使用commit命令,提交到本地历史仓库 -
6.使用log命令,查看日志
7..修改test.txt文件
8.添加并提交,查看日志-
创建工作目录、初始化本地 git 仓库先创建一个文件夹,使用 git init把他从一个普通的文件夹修改成git仓库。有【.git】则代表创建成功
-
新建一个 test.txt 文件(暂不执行添加操作)
-
使用 status 命令,查看状态
红色为 没有进行添加操作的文件。
-
使用 add 命令添加,并查看状态
-
使用 commit 命令,提交到本地历史仓库
commit操作会把暂存区所有的文件提交到本地仓库,所以不需要指定具体某单个文件
-
使用 log 命令,查看日志
代表当前这个文件在本地仓库中的唯一索引标识,将来对文件进行修改,修改后就是第二个版本了,第二个版本也有一个唯一的标识
-
修改 test.txt 文件
-
添加并提交,查看日志
-
1.3Git图形化工具操作以上步骤
图形化工具
-
创建工作目录、初始化本地 git 仓库
-
新建一个 test.txt 文件(暂不执行添加操作)
-
选中文件右键,选择TortoiseGit,之后选择添加
-
空白处右键,Git提交,提交到本地历史仓库
-
空白处右键,TortoiseGit,显示日志,可以产看日志信息
-
修改 test.txt 文件
-
7.添加并提交,查看日志
-
等进行第二次i修改时,直接点提交到master就可,不用再次添加
2.Git版本管理
2.1历史版本切换
-
准备动作
-
查看 my_project 的 log 日志 git reflog :可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录的操作),显示每个历史版本的一段索引值,进行操作时使用
-
增加一次新的修改记录
-
-
需求: 将代码切换到第二次修改的版本
指令:git reset --hard 版本唯一索引值
2.2分支管理介绍
-
分支
-
由每次提交的代码,串成的一条时间线
-
使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线
-
-
分支的使用场景
-
周期较长的模块开发 假设你准备开发一个新功能,但是需要一个月才能完成 第一周写了20%的代码,突然发现原来已经写好的功能出现了一个严重的Bug 那现在就需要放下手中的新功能,去修复Bug 但这20%的代码不能舍弃,并且也担心丢失,这就需要开启一个新的版本控制。
-
尝试性的模块开发 业务人员给我们提出了一个需求,经过我们的思考和分析 该需求应该可以使用技术手段进行实现。 但是我们还不敢确定,我们就可以去创建一个分支基于分支进行尝试性开发。
-
使用分支,意味着你可以把你的工作从开发主线中分离出来,以免影响开发主线
-
-
分支工作流程
-
Master: 指向提交的代码版本【具有指针的指向功能】
-
Header: 指向当前所使用的的分支
由于现在只有一个master分支,所以head指向master。
如果从第三版本开启新得功能模块,又不能保证是否做得出来,那麽可以在第三版本开启一个新得分支,新得时间线。
-
假如i新得时间线叫Dev,想使用新分支,只需让head这个指针指向Dev即可
新分支开发了一个功能模块,提交了一个版本Dev指向新得提交版本,head指向Dev这个分支
如果Dev开发完新功能后,想合并到主分支上去,先把Dev分支提交完成后的版本,再让master的这个指针指向到Dev当前的这个时间版本,再让head这个指针指向到master这个主分支。然后就可以把Dev这个分支删掉了
-
2.3分支管理操作
-
创建和切换
创建命令:git branch 分支名
切换命令:git checkout 分支名
-
查看新分支文件
查看文件命令:ls 【查看当前分支下的文件】
总结:不同分支之间的关系是平行的关系,不会相互影响【类似于分身,各干各的】
-
查看当前Git仓库的分支列表
查看命令:git branch
-
合并分支
合并命令:git merge 分支名 【将此分支合并到主分支中】
-
-
删除分支
删除命令:git branch -d 分支名
3.远程仓库
3.1远程仓库工作流程
左程序员在本地仓库push推送到远程仓库代码版本,右人可通过克隆把整个代码版本复制下来,包括各历史版本,然后右人又对代码进行修改,通过commit操作提交到了自己的本地仓库,利用push推送到远程仓库,左人通过pull拉取操作,把更新后的远程仓库代码版本更新到自己的本地仓库。
3.2远程仓库平台介绍
-
GitHub
-
码云
远程仓库操作情况:
情况1;先有本地仓库,远程仓库为空
情况2:现有远程仓库,本地仓库为空
3.4先有本地项目,远程为空
-
步骤
-
创建本地仓库
-
创建或修改文件,添加(add)文件到暂存区,提交(commit)到本地仓库
-
创建远程仓库
-
将项目从本地仓库推送到远程仓库[推送之前需要先配置SSH公钥]
-
-
创建远程仓库
-
生成SSH公钥
-
推送代码之前,需要先配置SSH公钥【一种协议】
-
生成SSH公钥步骤
-
设置Git账户【生成ssh公钥时需要用到git账户】
全局的账户,邮箱代表这台机器所有的Git仓库都会使用这个账户和邮箱,不做这个配置的话,生成SSH公钥时会出错
-
git config user.name(查看git账户)
-
git config user.email(查看git邮箱)
-
git config --global user.name “账户名”(设置全局账户名)
-
git config --global user.email “邮箱”(设置全局邮箱)
-
cd ~/.ssh(查看是否生成过SSH公钥)
-
-
-
1.生成SSH公钥 生成命令: ssh-keygen –t rsa –C “邮箱” ( 注意:这里需要敲3次回车)
2.查看命令: cat ~/.ssh/id-rsa.pub [查看生成的公钥]
-
设置账户公钥【将公钥在配置到账户里面去】
-
公钥测试
命令: ssh -T git@gitee.com
-
将本地仓库版本推送到远程仓库
-
步骤
1.为远程仓库的URL(网址),自定义仓库名称【原本的名称太长,自定义为简洁的形式】2.推送
-
-
命令 git remote add 远程名称 远程仓库URL 【自定义名称】
-
git push -u 仓库名称 分支名 【推送命令】
-
-
3.5先有远程仓库,本地为空
-
步骤1.
1.将远程仓库的代码,克隆到本地仓库-
克隆命令:git clone 仓库地址【仓库的url】
2. 创建新文件,添加并提交到本地仓库【add,commit】
3. 推送至远程仓库
4. 项目拉取更新
拉取命令:git pull 远程仓库名 分支名
-
3.6代码冲突
-
产生原因:
两个程序员操作同一个文件,其中一个程序员在修改文件后,push到远程仓库,另一个程序员应该先pull将最新的代码更新到本地仓库后,在修改代码,之后push到远程仓库,结果他没有先pull将最新的代码更新到本地仓库,而是直接将自己的代码push到远程仓库,这样就可能会导致代码冲突
发生冲突,执行命令时报错,需要先进行拉取更新操作,git pull 远程仓库名 分支名,冲突文件就会出现黄色叹号,存在代码冲突
黄标代表代码冲突
输入查看命令
cat XXX文件名.XXX
-
如何解决冲突
<<<<<<<和>>>>>>>中间的内容,就是冲突部分
-
修改冲突行,保存,即可解决冲突。
-
重新add冲突文件并commit到本地仓库,重新push到远程
-
4.IDEA集成Git
4.1IDEA中配置Git
-
File -> Settings
-
Version Control -> Git -> 指定git.exe存放目录
-
点击Test测试
4.2创建本地仓库
-
VCS->Import into Version Control->Create Git Repository
-
选择工程所在的目录,这样就创建好本地仓库了
-
点击git后边的对勾,将当前项目代码提交到本地仓库
注意: 项目中的配置文件不需要提交到本地仓库中,提交时,忽略掉即可
4.3版本切换
-
方式一: 控制台Version Control->Log->Reset Current Branch...->Reset
这种切换的特点是会抛弃原来的提交记录
-
方式二:控制台Version Control->Log->Revert Commit->Merge->处理代码->commit
这种切换的特点是会当成一个新的提交记录,之前的提交记录也都保留
4.4分支管理
-
创建分支
VCS->Git->Branches->New Branch->给分支起名字->ok
-
切换分支
idea右下角Git->选择要切换的分支->checkout
-
合并分支
VCS->Git->Merge changes->选择要合并的分支->merge
处理分支中的代码
-
删除分支
idea右下角->选中要删除的分支->Delete
4.5本地仓库推送到远程仓库
-
VCS->Git->Push->点击master Define remote
-
将远程仓库的路径复制过来->Push
4.6远程仓库克隆到本地仓库
File->Close Project->Checkout from Version Control->Git->指定远程仓库的路径->指定本地存放的路径->clone