Git的使用
Git的使用
一. Git 概述
1.1 常用的Linux命令
cd 文件名 //表示进入某个目录 cd .. //表示返回上一级 pwd //显示当前所在的目录路径
ll -a //显示当前文件夹的所有文件,包含隐藏文件
ls(ll) //显示当前文件夹下的所有文件,两个ll显示的更详细
cat a.js //可以查看a.js的内容
touch a.js //创建一个a.js的文件 mkdir Test //创建一个Test文件夹
rm a.js //删除a.js指定文件 rm -i a.js //根据提示是否删除a.js的文件(Y/N)
rm -r Test //删除Test文件夹
mv a.js Test //将a.js移动到Test文件夹中
clear //清屏
history //查看历史使用的命令
exit //退出
1.2 概述与下载
1.2.1 概述
- Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
- Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
- 分为本地仓库和远程仓库
- .git 隐藏文件夹就是版本库,存在不同的更新版本迭代
1.2.2 安装git
将Git-2.25.1-64-bit.exe文件直接无脑下一步即可
1.3 常用关键词
暂存区(类似于购物车):所有在本地仓库增删改的文件都在暂存区没有保存在本地 本地仓库:就是本地的一个仓库 远程仓库:就是需要提交到Gitee上面的远程仓库
Clone :克隆 ,将远程仓库复制到本地仓库 Push:推送,将本地仓库上传到远程仓库 Pull:拉取,将远程仓库代码下载到本地仓库
1.4 工作流程
add => commit => push (先add到暂存区,然后commit到本地仓库,最后再push到远程仓库)
1.从远程仓库中克隆代码到本地仓库 2.从本地仓库中checkout代码然后进行代码修改 3.在提交前先将代码提交到暂存区 4.提交到本地仓库。本地仓库中保存修改的各个历史版本 5.修改完成后,需要和团队成员共享代码时,将代码push到远程仓库
1.5 Git 常用命令
1.5.1 配置相关
git config --global user.name "Eobard" //配置自己gitee的昵称
git config --global user.email 2209473452@qq.com //配置自己gitee的邮箱
git config -l //查看配置
git config --system --list //查看系统config
git config --global --list //查看当前用户(global)配置
1.5.2 add命令
git add index.html //添加index.html文件到暂存区
git add . //添加所有文件到暂存区(有个.)
1.5.3 commit命令
git commit -m "自定义信息..." //提交暂存区的所有文件到本地仓库
git commit -m "自定义信息..." a.js //提交暂存区的a.js到本地仓库
1.5.4 push命令
git push origin [本地分支名]:新建分支名或远程分支名。 # 如果不加本地分支名,默认把当前激活的分支推送到远程指定分支名
git push origin master //将本地仓库的master主分支提交到别名为origin的远程仓库
git push origin dev //将本地仓库的dev分支提交到别名为origin的远程仓库
1.5.5 pull、fetch命令
git pull origin master //从别名为origin的远程仓库的主分区拉取文件到本地仓库
git pull --rebase origin master //从别名为origin的远程仓库的主分支拉取新增加文件到本地仓库,两种写法
git fetch //从远程仓库获取更新。不会修改当前的工作目录或分支,只是把远程的提交、分支、标签等信息下载到本地
1.5.6 分支命令
git branch //查看本地分支
git branch -r //查看远程分支
git branch dev //创建一个名为dev的本地分支(若需要同步到远程仓库需要push)
git branch -d dev //删除名为dev的分支
git checkout 指定分支名称 //切换到指定分支,不同的分支,文件的内容也不一样
//(若要切换为主分支,直接git checkout master 即可)
1.5.7 merge命令
git merge 分支名 //将指定分支名的代码 合并到当前激活的分支中
//(注意:合并到谁就要首先切换到谁)
1.5.8 remote 命令
git remote -v //可以查看远程仓库的别名,用于push和pull
git remote add 别名 url //给远程仓库取一个别名,下次push和pull的时候就可以不用填写url,写别名即可
1.5.9 其它命令
git status //查看文件状态或查看冲突文件
git reflog //查看历史修改版本信息
git log //可以查看历史修改版本详细信息
1.5.10 tag命令
添加tag一定是commit之后的内容,即你本地仓库提交的内容
git add .
git commit -m '.."
git tag 标签名
git push origin 标签名 //这时候相当于tag是最新的代码,你的本地仓库也是最新的代码,但是远程分支上是旧的,这时候你也可以git push 把最新的代码也同步上去
1.6 大致流程(重点)
clone =》开发 =》add =》commit =》pull =》push
- 首先克隆项目
- 自己开发
- 增加开发的代码到本地仓库
- 提交
- 推送之前先拉取远程仓库最新代码
- 最后推送
二. Git 本地仓库使用
2.1 创建版本库
a. 在相应的文件夹里面,右键选择Git Bash Here 即可;
b. 然后使用命令初始化版本库
git init
c. 就会显示出 .git 文件夹(默认隐藏)
2.2 增删改版本库的文件
a. 在之前相应的文件夹里面,任意的增删改文件之后都要添加到暂存区
git add .
b. 将暂存区的内容提交到本地仓库
git commit -m "增删改了文件"
注意:1.在版本库中不管是增加、删除、修改文件都一定要提交,不然版本库不会作出变动,
2.添加/提交单个文件最好加上文件名:git add 文件名/ git commit -m "信息" 文件名
2.3 版本穿梭
(1)第一步:首先通过命令查看各个版本号,并记录下版本号
git reflog
(2)第二步:将刚刚的版本号复制,通过命令实现穿梭
git reset --hard 版本号
三. Git 远程仓库
3.1 配置SSH协议
(1)第一步:注册码云 https://gitee.com/signup 并 完善个人信息
(2)第二步:在个人信息找到设置,选择SSH公钥
(3)第三步:根据自己的用户名在自己的电脑找到C:\Users\九龙坡郭富城 文件夹里
(4)第四步:右键空白选择以Git Bash Here 运行,然后用命令创建文件
mkdir .ssh
(5)第五步:继续使用命令创建密钥
ssh-keygen -t rsa
注意:会出现让你输入的情况直接按下回车即可,直到会出现rsa3072出现即可
(6)第六步:然后进入.ssh文件夹,把里面的id_rsa.pub里面的东西复制到gitee的SSH公钥中复制进去;若没有标题随意写即可
3.2 创建远程仓库
在码云登录进去之后,直接创建仓库,然后根据相应信息填写即可
3.3 本地仓库关联远程仓库
3.3.1 方法1:关联远程仓库
(1)第一步:在相应的文件夹里,右键选择Git Bash Here通过命令初始化版本库
git init
(2)第二步:通过命令将本地仓库与远程仓库建立联系
git remote add origin 远程仓库URL地址
注意:这里创建了一个origin的别名,下一次从远程仓库pull或者push的时候就可以直接用别名了,就可以省略url
(3)第三步:如果 gitee 仓库创建的时候有 README.MD 文件,则先拉取代码;如果远程仓库是空的则跳过此步
git pull origin master
注意:如果远程仓库是空仓库,就不要执行这条命令,否则会出错
(4)第四步:通过命令测试与远程仓库的连接;然后 在本地仓库增删改各种文件并提交到本地仓库
git remote -v
注意:与远程仓库连接成功之后,创建了相应的文件别忘了提交和拉取到远程仓库
3.3.2 方法2:克隆空仓库
(1)第一步:在码云创建仓库,然后根据相应信息填写即可,并且复制远程仓库的url
(2)第二步: 在相应的文件夹里,右键选择Git Bash Here通过命令克隆远程仓库
git clone url
3.4 将本地仓库推送到远程仓库
将增删改的本地文件提交到本地仓库,然后通过push本地仓库的master分支到别名为origin远程仓库里面去
git push origin master
注意一点:1.推送的时候是以分支为单位,即 git push 别名 分支名
2. 如果要想推送其它分支,首先在本地仓库切换为其它分支,然后再推送即可,远程仓库会自动创建对应的分支接收文件
3.5 忽略文件推送到远程仓库
并不是所有文件都要提交,如idea中的 xxx.imp 、out文件夹、.idea文件夹、target文件夹等就要忽略,我们可以建立 文件可以忽略指定的文件添加到仓库中,
##常用的排除规则(#代表注释)
*.txt #忽略所有 .txt结尾的文件,这样的话上传就不会被选中!
!lib.txt #但lib.txt除外
/temp #仅忽略项目根目录下的TODO文件,不包括其它目录temp
build/ #忽略build/目录下的所有文件
doc/*.txt #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
常用的 .gitignore文件
# Eclipse Project Files
.classpath
.project
.settings/
.idea/
# IntelliJ IDEA Files
*.iml
*.ipr
*.iws
*.idea
# Build Artifacts
.gradle/
build/
target/
bin/
*.class
*.log
*.war
3.6 拉取远程仓库代码
在当前本地仓库中使用命令从别名为origin的主分区拉取,就会拉取与当前本地仓库不一样的文件
git pull origin master
注意一点:1.拉取的时候也是以分支为单位,即 git pull 别名 分支名
2. 若想要把远程仓库的其它分支拉取到本地仓库的其它分支,同样需要在本地仓库先切换为其它分支,再拉取
四. 分支管理
4.1 创建分支
在相应的文件夹下右键选择Git Bash Here通过命令创建分支
git branch dev
注意:用创建分支的命令,会将当前分支的内容复制给新的分支
4.2 切换分支
在相应的文件夹下右键选择Git Bash Here通过命令切换分支
git checkout dev
4.3 合并分支
在相应的文件夹下右键选择Git Bash Here通过命令合并分支
git merge dev
注意:1.将dev分支的文件合并到主分支
2. 其他分支合并到谁就要首先切换到谁
4.4 解决冲突
(1)第一步:切换到主分支
git checkout master
(2)第二步:合并其它分支
git merge dev
注意:merge后面是其它分支名
(3)第三步:会有冲突提示:Auto-merging HelloWorld.java CONFLICT (content): Merge conflict in HelloWorld.java Automatic merge failed; fix conflicts and then commit the result.
(4)第四步:查看冲突文件
git status
(5)第五步:根据提示打开对应的文件
(6)第六步:根据需求修改冲突文件
>>>>上面是当前分支(也就是master)的代码=======
=======下面是要合并进来的分支的代码,两者发生了冲突。<<<<
此时,分析两段的代码是实现相同功能而写的重复的代码还是各自实现的不同的功能的代码。
如果是重复代码:两个二选一删除一个,然后再把这些冲突标示符删除即可;
如果不是重复代码,两个都需要保留,只把冲突符号删除即可。
(7)第七步:重新在主分支添加新修改的文件并提交到远程仓库
git add .
git commit -m "修改冲突文件"
注意:这时候提交就不能这么写会报错 git commit -m "提示" 文件名
4.5 更新分支
从刚刚的解决冲突之后可以知道,这样做只会让主分区的文件合并成新的,但是其它分区还是原来的
解决:
1.切换到主分区
2(可选).将主分区从远程仓库pull下来 //如果本地仓库和远程仓库不一致就要pull
3.切换到其他分区
4.git merge master
5(可选).最后提交到远程 //如果需要将远程仓库的分支也更新,就提交
五. IDEA使用Git
5.1 方式1 (推荐)
1.打开设置找到version control 找到里面的git 点击测试,出现sucsessfully就可以了 2.创建项目,打开工具栏的VCS选择导入到版本控制选择create git repository即可,选择当前项目的文件夹(如果是微服务项目,就要选顶层文件夹)
5.2 方式2( 万能)
1.首先从远程clone项目下来,若没有项目可以在gitee上新建一个仓库然后通过命令克隆到本地某个位置 2.创建idea项目,并把刚刚克隆下来的文件里面的所有文件剪切到idea项目的根路径即可 3.然后就可以在idea中使用git了 在下面的terminal就可以使用命令了
5.3 注意事项
1.无论是方式1还是方式2,如果没有.gitignore文件要自己创建在项目中,即和src平级,在里面配置不想要提交的文件 2.Idea中有许多方式可以提交,图形化界面就用右上角的绿色√ 3.idea克隆项目:在idea创建项目那里有个git from version control的选项,选择然后输入url即可 4.可以在控制台的terminal终端的log中可以切换以往的版本
5.idea右下角的git:master就可以知道当前是什么分支,并且可以创建新的分支,还可以合并分支,遇到冲突在弹出的界面选择merge(手动解决冲突代码即可)
6.可以将idea的项目直接推送到远程仓库,不需要提前在远程仓库建立仓库;
首先安装gitee的插件,然后打开菜单栏的vcs => 导入到版本控制 => share project on gitee 即可