Git是一个免费的、开源的分布式版本控制系统,可以快速高效的处理从小型到大型的各种项目
Git官网:Git (git-scm.com)
下载好了之后双击安装, 选择安装路径的时候最好选择安装在无中文无空格的目录下面
下面详细讲解每一步的选项的意思,嫌麻烦的可以直接一直无脑点下一步
下一步的勾选,根据自己的需要进行选择
这里选择编辑器,我们默认就是选择vim编辑器
是否需要修改分支的名字, 默认的分支名字是master, 第二个选项表示对每新建一个仓库都自己取主分支的名字
是否修改环境变量, 默认是中间的选项, 会修改环境变量, 让你在本地的cmd中也能使用git, 这里我们选择第一个
选择第三方后台客户端的连接协议
设置行末换行符, 默认的选择会自动检查Windows和Linux环境, 自动转换换行符
选择客户端类型
选择从远程库拉取到本地库的时候的合并模式
选择凭据管理器
其他配置
实验室功能
安装完成
查看是否安装成功, 在桌面右键鼠标, 出现这两个选项, 即安装成功
点击Git Bash Here, 输入命令git --version
, 出现安装的版本信息
命令名称 | 作用 |
---|---|
git config -–global user.name 用户名 |
设置用户签名 |
git config -–global user.email 邮箱 |
设置用户签名 |
git init |
初始化本地库 |
git status |
查看本地库状态 |
git add 文件名 |
添加到暂存区 |
git commit -m "日志信息" 文件名 |
提交到本地库 |
git reflog |
查看历史记录 |
git reset --hard 版本号 |
版本穿梭 |
验证用户签名是否设置成功, 打开C:\Users\用户名\.gitconfig
文件, 就可以看到刚刚设置的用户签名
签名的作用是区分不同操作者身份.用户的签名信息在每一个版本的提交信息中能够查看到, 一次确认本次提交是谁做的.
Git首次安装必须设置一下用户签名,否则无法提交代码
注: 这里设置用户签名和将来登录GitHub(或者其他代码托管中心)的账号没有任何关系
在需要上传的项目的本地目录下右键鼠标, 打开Git Bash, 然后执行初始化命令初始化本地库
git init
然后本地目录下就会出现一个隐藏文件.git
文件
也可以通过git bash查看
git status
打印出的三行日志信息:
我们创建一个hello.txt
vim hello.txt
然后写入内容
(Linux命令, yy表示复制一行, p表示粘贴)
现在再来查看本地库的状态
可以看到出现了一个红色的文件, 代表该文件只是存在于工作区, git还没有追踪这个文件
git add
出现警告: 会切换换行符
此时再查看本地库的状态
文件变成了绿色, 表示添加成功, 我们还可以删除掉暂存区里面的文件, 但是工作区的文件不会被删掉
查看此时的本地库状态, 文件又变成了红色
将暂存区的文件提交到本地库, 形成历史版本
git commit -m
再查看本地库状态
打印的两行日志信息:
git reflog
查看详细日志
修改hello.txt文件
查看此时本地库的状态
然后添加缓存,并提交本地库
git reset
现在我有三个版本了, 我现在需要穿越到第二个版本
只需要复制第二个版本的版本号, 然后执行git reset 命令, 当然也会再次新生成一个版本号
也可以再次穿回去
在版本控制过程中, 同时推进多个任务, 为每个任务, 我们就可以创建每个任务的单独分支,
使用分支意味着程序员可以把自己的工作从开发主线上分离开来, 开发自己的分支的时候, 不会影响主线分支的运行
命令名称 | 作用 |
---|---|
git branch 分支名 | 创建分支 |
git branch -v | 查看分支 |
git checkout 分支名 | 切换分支 |
git merge 分支名 | 把指定的分支合并到当前分支上 |
git branch -v
git branch
git checkout
在hot-fix分支下,修改hello.txt
git merge
切换到master分支, hello.txt文件内容没有变, 然后我们合并分支
产生冲突
合并分支时, 两个分支在同一个文件的同一个位置有两套完全不同的修改, Git无法替我们决定使用哪一个, 此时必须人为决定新代码的内容
创建远程仓库的方式有很多, 除了图中的两种之外, 也可以点击右上角的+
号, 选择New repository
命令名称 | 作用 |
---|---|
git remote -v | 查看当前所有远程地址别名 |
git remote add 别名 远程地址 | 起别名 |
git push 别名/远程地址 分支 | 推送本地分支上的内容到远程仓库 |
git clone 远程地址 | 将远程仓库的内容克隆到本地 |
git pull 远程库地址/别名 远程分支 | 将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并 |
然后写入需要添加的团队成员的用户名或者邮箱,添加成员
然后会生成一个邀请链接,复制邀请链接发送给邀请对象,邀请对象复制链接打开网页,可以选择同意或者婉拒邀请
在C:/User/用户
目录下打开git bash
执行如下命令:
ssh-keygen -t rsa -C 邮箱
执行命令之后, 敲3次回车, 会生成一个.ssh
文件, 其中包含: 私钥 id_rsa
, 公钥id_rsa.pub
然后复制公钥, 来到GitHub账号下的Settings
为这个ssh取名并将公钥粘贴, 然后点击Add ssh key
如下即添加成功
测试一下是否成功, 将本地分支上的内容推送到远程仓库, 推送成功可以在GitHub上查看到刚刚的推送内容
我们创建一个maven项目,或者springboot项目, 配置好Git的安装目录: File -> Settings -> Version Control -> Git, 选择git的安装位置, 然后点击Test,出现版本信息,说明配置成功
选择VCS->create git repository
然后可以看到文件中也出现了.git
文件
可以看到项目的pom.xml
文件是红色的(由于我做的时候没有记录好, 所以用另一个代替了, 效果是一样的), 说明此时文件处于未被追踪状态, 还没有添加到暂存区
右键项目, 选择Git-> Add
此时我们可以看到文件变绿了
然后就可以开始编写代码, 写完之后就可以提交, 右键项目, 选择Git->Commit Directory
选择好要提交的文件, 并填写提交信息, 最后点击Commit and Push
在idea左下角点击Git, 可以看到你修改的各个版本, 右键想要回退到的一个版本, 选择Checkout Reversion,
右键项目,Git->Branches
或者在页面的右下角,点击master->new branch
点击需要切换的分支->checkout
点击当前所在的分支没有checkout选项, 说明此分支即为当前所在的分支, 如下,此时我所在的分支为master分支
我当前所在的分支是master, 要将origin/master分支的修改合并到master上, 点击要合并的分支, 选择Merge ‘origin/master’ into ‘master’ 就可以合并分支了
File->Settings->Version Control -> GitHub
验证好之后就可以设置成功了
如果version control里面没有github, 可以去plugins里面下载, 然后退出重新进入就会有GitHub选项了
Git -> GitHub -> share project on github
还可以添加描述信息, 然后点击share, 就可以上传到到GitHub上了, 开打GitHub就可以看到上传的项目了
右键项目 -> Git -> Push
设置ssh免密登录
把项目的ssh链接复制过来,起个名字, 然后点击ok
然后我们选用刚刚设置的登录方式, 我们就可以看到信息了, 然后点击push即可
右键项目 -> Git -> pull
然后点击pull即可
我们把项目从本地删除, 然后打开idea, 可以看到我之前的那个aliyun项目是灰色的, 我们点击Get from VCS
然后复制项目的ssh地址过来, 点击clone, 即可完成克隆代码到本地
码云是开源中国推出的基于Git的代码托管服务中心,地址Gitee, 使用方式和GitHub一样, 而且是个中文网站
完成注册之后, 点击右上角的“+”号, 选择新建仓库, 创建步骤与GitHub一样
File -> Settings -> Plugins, 搜索gitee, 点击install安装插件
安装成功之后点击OK, 等待集成完成, 再次进入Settings, 会在Version Control中看见Gitee(如果没有看见就重启idea), 然后将我们的gitee账号添加进去
添加成功
对项目的提交, 推送, 拉取等操作与GitHub一致, 需要注意的是, 在做这一系列的操作的时候, 要将链接换成gitee的链接, url路径复制http协议的
点击新建仓库, 在右边有一个“在其他网站已经有仓库了吗? 点击导入”, 点击进入
我们可以选择从url导入, 复制仓库链接, 注意复制的链接应该是http协议的链接, 最后点击导入即可
还可以选择从GitHub导入, 验证登录你的GitHub账号, 就可以看到你在GitHub的所有项目了, 选择需要导入的项目,点击导入即可