目录
前言
本文中可以学到:
了解Git基本概念
能够概述git工作流程
能够使用Git常用命令
熟悉Git代码托管服务
能够使用idea操作git`
一、什么是git?
git是分布式版本控制工具。
分布式版本控制系统没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样工作的时候,无
需要联网了,因为版本库就在你自己的电脑上。多人协作只需要各自的修改推送给对方,就能互相看到对方的修改了。
二、git的工作流程
提示:先看图了解了解,看了后面文章会逐渐明白;
三、git的常用命令
在使用之前需要安装好git工具:点击下载
安装完成后要进行配置
。
1 配置
git config --global user.name " username"
git config --global user.email “useremail”
2查看配置信息
git config --global user.name
git config --global user.email
3. 基础操作指令
- 理解代码在本地的存储
命令解释touch filename创建文件vi filename编辑文件git add .将工作区内容提交到暂存区git commit -m “注释内容”将暂存区的内容存到仓库git status查看当前暂存区的状态
版本回退
命令解释git reset --hard commitID回退到指定版本的IDgit-log查看当前的版本(一行)git log查看当前的版本(多行)git reflog查看删除提交记录分支的切换
命令解释git checkout 分支名切换分支到 分支名git checkout -b 分支名切换分支到 分支名(不存在则创建)分支的创建
命令解释git branch查看当前的分支git branch 分支的名称创建分支git checkout分支名 切换分支git-log查看分支的信息解决冲突 案例: 1.假如在dev与master分支下都有file02.txt的文件。 2.其中dev下file02.txt内容为:dev file02.txt; 3.master下file02.txt内容为:master file02.txt; 4.现在我们分别在master分支与dev分支下提交内容; 5.合并分支dev到master,出现错误:
Auto-merging file02.txt
CONFLICT (content): Merge conflict in file02.txt
Automatic merge failed; fix conflicts and then commit the result.
且文件内容如下:
<<<<<<< HEAD
master update file02.txt
=======
dev update file02.txt
>>>>>>> dev
解决冲突,手动去解决冲突,比如我将文件内容改为了:master update file02.txt
最后使用git add . git commit -m “提交冲突”
四、git代码托管平台
0.介绍
前面我们已经知道了Git中存在两种类型的仓库,即本地仓库和远程仓库。那么我们如何搭建Git远程仓库呢?我们可以借助互联网上提供的一些代码托管服务来实现,其中比较常用的有GitHub、码云、GitLab等。
- gitHub( 地址:https://github.com/ )是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名gitHub
- 云(地址: https://gitee.com/ )是国内的一个代码托管平台,由于服务器在国内,所以相比于 GitHub,码云速度会更快
- GitLab (地址: https://about.gitlab.com/ )是一个用于仓库管理系统的开源项目,使用Git作 为代码管理工具,并在此基础上搭建起来的web服务,一般用于在企业、学校等内部网络搭建git私服。
1.注册gitee
注意:github由于网络访问原因,这里我们教程使用gitee.
- 请点击注册
- 新建仓库
2. 配置SSH公钥
在本机git环境下:如下图(重要信息大码,看命令及可)
注意:以下所有命令要保证已经完成git config 配置,及 (三 1. )部分
- 生成SSH公钥
- ssh-keygen -t rsa - 不断回车 - 如果公钥已经存在,则自动覆盖
- Gitee设置账户共公钥
- 获取公钥 - cat ~/.ssh/id_rsa.pub
- 验证是否配置成功 ssh -T git@gitee.com
3.操作远程仓库
- 添加远程仓库此操作是先初始化本地库,然后与已创建的远程库进行对接。
- 命令: git remote add <远端名称> <仓库路径> - 远端名称,默认是origin,取决于远端服务器设置- 仓库路径,从远端服务器获取此URL- 例如: git remote add origin git@gitee.com:czbk_zhang_san/git_test.git
- 查看远程仓库
- 命令:git remote
- 推送本地代码到远程仓库
- 命令:git push [-f] [–set-upstream] [远端名称 [本地分支名][:远端分支名] ] - 如果远程分支名和本地分支名称相同,则可以只写本地分支 - git push origin master
- -f 表示强制覆盖
- –set-upstream 推送到远端的同时并且建立起和远端分支的关联关系。 - git push --set-upstream origin master
- 如果当前分支已经和远端分支关联,则可以省略分支名和远端名。 - git push 将master分支推送到已关联的远端分支。
- 使用git branch -vv 查看分支之间的关系,
注意:有可能会报错:
https://gitee.com/qsq/git-test.git/': The requested URL returned error: 403
y@LBDTOP-7777LAPAE MINGW64 ~/Desktop/git-test/test01 (master)
解决方案:
控制面板 > 用户帐户 > 凭据管理器 > Windows 凭据 > 通用凭据
接下来,删除 Gitte 密钥。
4.0 远端冲突解决方案
- 问题: 在一段时间,A、B用户修改了同一个文件,且修改了同一行位置的代码,此时会发生合并冲突。 A用户在本地修改代码后优先推送到远程仓库,此时B用户在本地修订代码,提交到本地仓库后,也需要推送到远程仓库。但提交时候会出现错误:
![rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'https://gitee.com/qqq/git-test.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards'in'git push --help'for details.
- 解决办法:因为此时B用户晚于A用户,故B用户需要先拉取远程仓库的提交,经过合并后才能推送到远端分支。
- 指令:
- git pull //拉去代码到本地;
- 手动修改冲突。
- gitadd. //提交到暂存区
- git commit -m'修改冲突' //提交到本地仓库
- git push //提交到远端仓库
冲突如下:
手动解决冲突:
- 总结 解决冲突办法:把远端仓库代码拉到本地,再本地解决,解决完成后推送到远端。
五、使用idea操作git
1.创建远端仓库
2.初始化本地仓库
- 确定git版本
- 将代码变为本地仓库
3.设置远端仓库:
4 提交代码
5.推送代码到远端仓库
6.克隆代码到本地
7.创建分支
- 常规方法
- 更简洁方便的
8.切换分支
9.解决冲突
1.执行merge或pull操作,可能发生冲突
2.冲突解决后加入到暂存区
3.提交代码到本地仓库
4.推送到远端仓库
六、IDEA中常用Git操作
1. 基本操作一览图
2. git操作在IDEA中的入口
版权归原作者 大道归简 所有, 如有侵权,请联系我们删除。