Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。
Git 易于学习,占地面积小,性能极快。 它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。其性能优于 Subversion、CVS、Perforce 和 ClearCase 等版本控制工具。
下载Git
官网地址: https://git-scm.com/
安装教程:教程参考
安装完成
Git基本操作
git操作分为三个区域:工作空间—暂存区-----本地库
1.初始化本地库:
在所需要初始化项目的文件夹中右键Git Bash,即可进入
输入 git init
初始化完成
2.查看状态: git status
通用Linux命令:
insert-----》hello git !! —》ESC—》yy----》:wq------》Ctrl+c
再次查看状态:显示未提交到暂存区
使用git add 文件名
显示文本数据:cat hello.txt
修改文件后,再次查看状态:
git status
再次提交到暂存区:git add hello.txt, 再次查看状态git status
使用git rm --cached 文件名 移除添加到暂存区的文件
查看详细 git status
先要使用git add 文件名 将工作空间的文件添加到暂存区,再将暂存区文件提交到本地库 :git commit -m “版本信息” 文件名
查看版本日志:git reflog
查看详细日志:git log
再次修改工作空间中的文本 vim hello.txt
查看状态:git status
提交到暂存区git add 文件名,查看状态git status:
再次提交到本地库git commit -m “版本信息” 文件名,查看本地库版本信息git reflog
git log 会出现之前所有版本的信息,但是Head ->master 指向最新的版本:
git的版本是通过指针来进行控制的 Head ->master!
版本替换:使得Head ->master 指向其他版本,实现版本替换
先通过git reflog查看版本号
再使用git reset --hard 版本号 #替换版本
复制键Ctrl+INS 粘贴键SHIFT+INS
再次查看版本信息:git reflog 看到指针移动到之前的版本
使用cat hello.txt 查看文件
总结基本命令:
新建文件夹:右键进入git Bash命令控制台
git init #初始化工作空间
git status #查看工作空间状态
vim 文件名 #vim hello.txt 与Linux命令一致
进入vim模式的基本命令:INSERT--编辑---ESC---yy(多行复制)--p(粘贴)---:wq(保存退出)
使用cat 文件名 #cat hello.txt 查看文件
再次查看工作空间状态:git status
提交到暂存区: git add 文件名
再次查看工作空间状态:git status
使用git rm --cached 文件名 移除添加到暂存区的文件
再次查看工作空间状态:git status
提交到暂存区: git add 文件名
提交到本地库: git commit -m "版本信息" 文件名
git reflog #查看版本信息
git log #查看详细版本信息
通过git reflog 查看版本号
使用git reset --hard 版本号 使得版本替换
git reflog #再次查看版本信息
Git的分支操作
什么是分支
在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独
分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时
候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是
一个单独的副本。(分支底层其实也是指针的引用)
分支的好处
同时并行推进多个功能开发,提高开发效率。
各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败
的分支删除重新开始即可。
分支基本操作:
查看当前分支 git branch -v 只有一个master分支
创建分支:git branch 分支名
查看当前分支,分支依然在master上
切换分支 : git checkout 分支名
查看当前分支 git branch -v 分支转移到hot-fix上
cat hello.txt 查看当前分支文件
git reflog 查看当前分支本地库信息
修改当前分支信息
![
然后提交到暂存区 git add文件名
提交到本地库:git commit -m “版本信息” 文件名
切换到主分支 master :git checkout master
查看文本信息:未被修改
合并分支:将hot-fix分支合并到master分支上,先将分支转移到master上
git merge 分支名
查看工作区状态:git status,
以及文本信息:cat 文件名
合并成功!!
Git的团队协作
团队内协作流程:
跨团队协作流程:
Git—GitHub的基本操作
方法一(不推荐)
将本地项目上传到Github
首先你需要一个github账号,所有还没有的话先去注册吧!
https://github.com/
我们使用git需要先安装git工具,这里给出下载地址,下载后一路直接安装即可:
https://git-for-windows.github.io/
1.进入Github首页,点击New repository新建一个项目
2.填写相应信息后点击create即可
Repository name: 仓库名称
Description(可选): 仓库描述介绍
Public, Private : 仓库权限(公开共享,私有或指定合作者)
Initialize this repository with a README: 添加一个README.md
gitignore: 不需要进行版本管理的仓库类型,对应生成文件.gitignore
license: 证书类型,对应生成文件LICENSE
4.点击code会出现一个地址,copy这个地址备用。
5.接下来就到本地操作了,首先右键你的项目,如果你之前安装git成功的话,右键会出现两个新选项,分别为Git Gui Here,Git Bash Here,这里我们选择Git Bash Here,进入如下界面,即为我的项目名。
6.接下来输入如下代码(关键步骤),把github上面的仓库克隆到本地
git clone https://github.com/CKTim/BlueTooth.git
(https://github.com/CKTim/BlueTooth.git替换成你之前复制的地址)
7.这个步骤以后你的本地项目文件夹下面就会多出个文件夹,该文件夹名即为你github上面的项目名,如图我多出了个Test文件夹,我们把本地项目文件夹下的所有文件(除了新多出的那个文件夹不用),其余都复制到那个新多出的文件夹下,
8.接着继续输入命令 cd Test
,进入Test文件夹
9.接下来依次输入以下代码即可完成其他剩余操作:
git add .
(注:别忘记后面的.,此操作是把Test文件夹下面的文件都添加进来)
git commit -m ”提交信息”
(注:“提交信息”里面换成你需要,如“first commit”)
git push -u origin main
(注:此操作目的是把本地仓库push到github上面,此步骤需要你输入帐号和密码)
GitHub 网址:https://github.com/
方法二(推荐)
创建远程仓库:
点击创建!!
远程仓库基本命令:
上传项目时,先要初始化项目 git init 在与项目同一级初始化,不要进如项目文件夹内
再git add 项目名 上传到暂存区
再git commit -m “版本信息” 文件名
为远程仓库取别名:git remote add 别名 远程地址
将本地库的文件推送到远程仓库:git push 别名 分支名
上传成功
拉取远程库的文件到本地库:git pull 远程仓库别名 远程分支名
修改远程库文件
克隆远程仓库到本地
1)基本语法
git clone 远程地址
新建文件夹,在里面打开git Bash
clone 会做如下操作。1、拉取代码。2、初始化本地仓库。3、创建别名
邀请加入团队:
选择邀请合作者
邀请好后,队友就可以对远程仓库执行clone ,push,pull等操作
SSH 免密登录
我们可以看到远程仓库中还有一个 SSH 的地址,因此我们也可以使用 SSH 进行访问。
--进入当前用户的家目录
Layne@LAPTOP-Layne MINGW64 /d/Git-Space/SH0720 (master)
$ cd
--删除.ssh 目录
Layne@LAPTOP-Layne MINGW64 ~
$ rm -rvf .ssh
removed '.ssh/known_hosts'
removed directory '.ssh'
--运行命令生成.ssh 秘钥目录[注意:这里-C 这个参数是大写的 C]
Layne@LAPTOP-Layne MINGW64 ~
$ ssh-keygen -t rsa -C atguiguyueyue@aliyun.com(邮箱号)
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/Layne/.ssh/id_rsa):
Created directory '/c/Users/Layne/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/Layne/.ssh/id_rsa.
Your public key has been saved in /c/Users/Layne/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:7CPfRLITKcYDhaqpEDeok7Atvwh2reRmpxxOC6dkY44
atguiguyueyue@aliyun.com
The key's randomart image is:
+---[RSA 2048]----+
| .. |
| .. |
| . .. |
|+ + o . . |
|oO . = S . |
|X . .. + = |
|+@ * .. = . |
|X.&o+. o = |
|Eo+Oo . . |
+----[SHA256]-----+
--进入.ssh 目录查看文件列表
Layne@LAPTOP-Layne MINGW64 ~
$ cd .ssh
Layne@LAPTOP-Layne MINGW64 ~/.ssh
$ ll -a
total 21
drwxr-xr-x 1 Layne 197609 0 11 月 25 19:27 ./
drwxr-xr-x 1 Layne 197609 0 11 月 25 19:27 ../
-rw-r--r-- 1 Layne 197609 1679 11 月 25 19:27 id_rsa
-rw-r--r-- 1 Layne 197609 406 11 月 25 19:27 id_rsa.pub
--查看 id_rsa.pub 文件内容
Layne@LAPTOP-Layne MINGW64 ~/.ssh
$ cat id_rsa.pub
ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAABAQDRXRsk9Ohtg1AXLltsuNRAGBsx3ypE1O1Rkdzpm
l1woa6y6G62lZri3XtCH0F7GQvnMvQtPISJFXXWo+jFHZmqYQa/6kOIMv2sszcoj2Qtwl
lGXTPn/4T2h/cHjSHfc+ks8OYP7OWOOefpOCbYY/7DWYrl89k7nQlfd+A1FV/vQmcsa1L
P5ihqjpjms2CoUUen8kZHbjwHBAHQHWRE+Vc371MG/dwINvCi8n7ibI86o2k0dW0+8SL+
svPV/Y0G9m+RAqgec8b9U6DcSSAMH5uq4UWfnAcUNagb/aJQLytrH0pLa8nMv3XdSGNNo
AGBFeW2+K81XrmkP27FrLI6lDef atguiguyueyue@aliyun.com
复制 id_rsa.pub 文件内容,登录 GitHub,点击用户头像→Settings→SSH and GPG keys
然后测试:git clone ssh远程地址
完成免密下载!!
上传到远程仓库步骤:
1.初始化项目 git init
2.上传到暂存区 git add 文件名
3.上传到本地库 git commit -m “版本信息” 文件名
4.在gitHub上创建远程仓库
5.为远程仓库取别名:git remote add 别名 远程地址
6.将本地库的文件推送到远程仓库:git push 别名 分支名
7.爬取远程仓库文件: git pull 远程仓库别名 远程分支名
8.克隆远程仓库文件 : git clone 远程地址
9.设置SSH免密登录
IDEA集成Git
第一步:创建忽略规则文件 xxxx.ignore(前缀名随便起,建议是 git.ignore)
这个文件的存放位置原则上在哪里都可以,为了便于让~/.gitconfig 文件引用,建议也放在用
户家目录下
git.ignore 文件模版内容如下:
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see
http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.classpath
.project
.settings
target
.idea
*.iml
2)在.gitconfig 文件中引用忽略配置文件(此文件在 Windows 的家目录中)
[user]
name = Layne
email = Layne@atguigu.com
[core]
excludesfile = C:/Users/asus/git.ignore
注意:这里要使用“正斜线(/)”,不要使用“反斜线(\)”
在idea中创建一个项目:
在idea中添加git:
初始化项目:
添加到暂存区:
添加到本地库:
版本切换:
修改代码:
添加暂存区:
添加到本地库:
查看本地库版本信息:
切换版本:
创建分支:
切换分支:
分支合并:
修改hot-fix分支代码,提交到本地库
切换到master分支
点击合并
合并成功!!
修改hot-fix分支代码,提交到本地库
修改master分支代码提交到本地库
合并,会出现代码冲突
手动选择:
IDEA集成GitHub
使用口令登录:
打开github:
生成token:
分享项目到github:
分享成功!!
修改代码,提交到本地库,再提交到远程库:
点击push:
或者:
使用ssh提交
push 是将本地库代码推送到远程库,如果本地库代码跟远程库代码版本不一致,
push 的操作是会被拒绝的。也就是说,要想 push 成功,一定要保证本地库的版本要比远程库的版本高!因此一个成熟的程序员在动手改本地代码之前,一定会先检查下远程库跟本地代码的区别!如果本地的代码版本已经落后,切记要先 pull 拉取一下远程库的代码,将本地代码更新到最新以后,然后再修改,提交,推送!
pull 拉取远程库代码到本地库
修改远程库代码
注意:pull 是拉取远端仓库代码到本地,如果远程库代码和本地库代码不一致,会自动
合并,如果自动合并失败,还会涉及到手动解决冲突的问题。
clone 克隆远程库到本地
复制连接,选择文件地址
idea集成Gitee码云
众所周知,GitHub 服务器在国外,使用 GitHub 作为项目托管网站,如果网速不好的话,严重影响使用体验,甚至会出现登录不上的情况。针对这个情况,大家也可以使用国内的项目托管网站-码云。
码云是开源中国推出的基于 Git 的代码托管服务中心,网址是 https://gitee.com/ ,使用
方式跟 GitHub 一样,而且它还是一个中文网站,如果你英文不是很好它是最好的选择。
创建远程库:
安装Gitee码云插件:
重启idea
添加账号:输入邮箱和密码
分享到gitee
将本地项目push到远程仓库
将项目提交到本地库:
修改远程库代码,将远程库代码拉取到本地库:
远程仓库克隆:
gitHub导入gitee
同步github项目:
自建代码托管平台-GitLab
GitLab 简介
GitLab 是由 GitLabInc.开发,使用 MIT 许可证的基于网络的 Git 仓库管理工具,且具有
wiki 和 issue 跟踪功能。使用 Git 作为代码管理工具,并在此基础上搭建起来的 web 服务。
GitLab 由乌克兰程序员 DmitriyZaporozhets 和 ValerySizov 开发,它使用 Ruby 语言写
成。后来,一些部分用 Go 语言重写。截止 2018 年 5 月,该公司约有 290 名团队成员,以及 2000 多名开源贡献者。GitLab 被 IBM,Sony,JülichResearchCenter,NASA,Alibaba,Invincea,O’ReillyMedia,Leibniz-Rechenzentrum(LRZ),CERN,SpaceX 等组织使用。
10.2 GitLab 官网地址
官网地址:https://about.gitlab.com/
安装说明:https://about.gitlab.com/installation/
idea安装gitlab插件
其他操作和gitee相同!!!