Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目 。
Git易于学习,占地面积小,性能 极快 。 它具有廉价的本地 库 ,方便的暂存区域和多个工作流 分支 等 特性。 其性能优于 Subversion、 CVS、 Perforce和 ClearCase等 版本控制 工具。
像Git这种分布式版本控制工具 ,客户端提取的不是最新版本的文件快照,而是把代码仓库完整地镜像下来 (本地库 。这样任何一处协同工作用的文件发生故障,事后都可以用其他客户端的本地仓库进行恢复。因为 每个客户端的每一次文件提取 操作,实际上都是一次对整个文件仓库的完整备份 。
分布式版本控制系统出现以后,解决了集中式控制系统的缺陷:
代码托管中心是基于网络服务器的远程代码仓库,一般我们简称为远程库:
局域网:
互联网:
git的官网下载地址:https://git-scm.com/
第一步:双击.exe进行安装,点击Next
第二步:选择Git安装位置,要求是非中文并且没有空格的目录,然后下一步
第三步:Git选项配置,推荐默认设置,然后下一步
第四步:设置Git安装目录名,不用修改,直接点击下一步
第五步:配置Git的默认编辑器,建议使用默认的 Vim编辑器,然后点击下一步
第六步:默认分支名设置,选择让Git决定,分支名默认为 master,下一步
第七步:修改Git的环境变量,选第一个,不修改环境变量,只在 Git Bash里使用 Git
第八步:选择后台客户端连接协议,选默认值OpenSSL,然后下一步
第九步:配置Git文件的行末换行符,Windows使用 CRLF,Linux使用LF,选择第一个自动转换,然后继续下一步
第十步:选择Git终端类型,选择默认的 Git Bash终端,然后继续下一步
第十一步:选择Git pull合并的模式,选择默认,然后下一步
第十二步:选择Git的凭据管理器,选择默认的跨平台的凭据管理器 ,然后下一步
第十三步:其他配置,选择默认设置,然后下一步
第十四步:实验室功能,技术还不成熟, 有已知的 bug,不要勾选,然后点击右下角的 Install按钮,开始安装 Git
第十五步:最后点击点击Finsh按钮,Git安装成功!
安装成功以后,在我们的右键菜单里选择Git Bash Here
即可打开Git Bash
命令行终端:
此时,进入Git bash
终端输入以下命令即可查看当前的git版本信息:
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 版本号 | 版本穿梭 |
在刚安装完Git以后,需要设置我们的用户签名,否则无法提交代码,这里设置的用户签名和将来我们登录的GitHub(或者其他代码托管中心)的账号没有任何关系,只是作为一个标识。
git config --global user.name xxx
git config --golbal user.email [email protected]
设置完我们的用户签名以后,可以在/我的电脑/C盘/用户/你设置的用户/.gitconfig
中进行查看你的用户签名配置信息:
创建一个你需要初始化的文件夹,在该文件夹下进入Git Bash
终端,运行git init
命令即可初始化本地仓库,初始化完毕以后,查看隐藏文件可以看到一个.git
的文件夹:
首次我们初始化完本地库以后,查看本地库状态,显示信息如下所示:
此时我们创建一个123.txt文件以后,再次查看本地库状态,更新为如下信息:
git add 文件名
warning警告信息是由于windows和Linux中的换行符格式不同,git为我们进行自动转换...
此时,我们的123.txt文件只是存在于暂存区中,如果想要删除的话,则使用它提示的命令:
git rm --cached 文件名
git commit -m “日志信息” 文件名
此时,我们可以查看日志的版本信息:
git reflog
或者 git log
我们尝试修改123.txt文件,此时查看状态,此时文件重新变红(Modified!!!)
我们需要重新进行add-commit命令将其添加暂存区,进而提交本地库,此时存在两个历史版本信息:
git reset --hard 版本号
在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本。(分支底层其实也是指针的引用)
同时并行推进多个功能开发,提高开发效率
各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
git branch 分支名 创建分支
git branch -v 查看分支
git checkout 分支名 切换分支
git merge 分支名 把指定的分支合并到当前分支上
其中,合并分支时,需要处于合并之后的分支上,进行合并分支操作,例如:我们处于master
分支上,进行hot-fix
分支的合并操作,就会将hot-fix
分支合并到master
分支之上。
但是,如果此时两个分支发生冲突问题,即两个分支在同一个文件同一个位置有两套完全不同的修改。此时进行合并时,Git无法决定我们使用哪个分支,必须人为决定新代码内容。
如何人为决定?
git add 文件名
fatel:cannot do a partial commit during 1 merge
,故我们需要采取新的提交方式(不带文件名)注意:
GitHub网址:https://github.com/
登录GitHub以后,点击右上角的+号,选择New repository
然后编辑自己的仓库名称,最好和本地仓库的名称保持一致性,最后点击创建即可
此时创建成功以后会出现一个链接地址:
这里的https的地址为:
https://github.com/CodeSmallPig/Gitdemo.git
此时我们就可以在本地仓库中使用Git Bash
终端创建一个远程仓库的别名:
git remote add 别名 远程地址
git remote add git-demo https://github.com/CodeSmallPig/Gitdemo.git
git remote -v 查看当前所有远程地址别名
git push https链接/别名 需要推送的本地库分支
此时,会弹出GitHub的登录框,进行登录,即可推送成功!再返回我们的GitHub仓库,就能查看到已经上传的文件。
git pull https链接/别名 需要拉取本地库的分支
拉取成功以后,会自动更新本地库的文件为拉取后的文件状态
git clone 远程地址
注意:
第一步:如果对于一个仓库,与其他成员共享协作,可以在仓库中邀请合作者:
第二步:点击Invite a collaborator
,填入想要合作的人,然后将后面的Pending Invite
复制发送给合作的用户:
第三步:登录合作者的账号,点击接受邀请,成功以后就能在合作者账号端看到被合作者的远程仓库了
第四步:此时我们的合作者就可以进行仓库文件的修改并push到远程仓库,并且这个文件的修改是共享同步的
第一步:将远程仓库的地址复制发给邀请团队协作的人
第二步:登录团队协作者的账号,地址栏复制收到的链接,然后点击fork
将项目叉到自己的本地仓库
叉入成功以后,就可以看到当前仓库的信息
第三步:叉入以后就可以对他人的文件进行修改
第四步:编辑完毕以后,填写描述信息并点击左下角的绿色提交按钮进行提交
第五步:接下来点击上方的Pull requests
请求,创建一个新的请求
第六步:此时回到求助者团队的Github账号就可以看到一个Pull request
请求
可以进行代码的修改信息的查看,如果没有问题,则点击Merge pull request
进行代码的合并
GitHub的远程仓库还有一个SSH的地址,可以使用SSH进行访问
进入到我的电脑\C盘\用户\你当前使用的用户文件夹
,启动Git Bash
终端,输入以下命令,再连续敲三次回车,生成对应的.ssh
文件夹:
ssh-keygen -t rsa -C [email protected](你要绑定的邮箱账号地址)
此时我们进入.ssh
目录查看文件列表,并查看查看 id_rsa.pub
文件内容
我们复制id_rsa.pub
文件中的内容,登录GitHub,点击用户头像,选择Settings
,然后选择SSH and GPU keys
:
接下来再往远程仓库push东西的时候使用 SSH连接就不需要登录了
在实际的项目中,有一些文件不参与服务器的部署运行,我们将其忽略提交。需要在项目的根目录下创建一个git.ignore
文件,然后点击该文件,输入需要忽略的文件项:
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/
### VS Code ###
.vscode/
同时,需要在.gitconfig
文件中引用忽略配置文件(该文件位于Window的当前用户文件夹下)
[
name = feng
email = [email protected]
[
excludesfile = C:/Users/86180/git.ignore
注意:这里要使用“正斜线( (//)”,不要使用“反斜线
在IDEA中,打开Settings
中的Version Control
:
然后点击Git
,选择自己的Git.exe
安装目录:
VCS
--> Import into Version Control
--> Create Git Repository
初始化以后,会在你的项目根目录下生成对应的.git
文件夹,此时会发现项目中存在一些文件为红色
将文件添加至暂存区的方式:
方式1:右击红色文件,选择Git
--> Add
即可
此时,文件颜色变成绿色,表示文件以后添加至暂存区,但是还未提交至本地库
方式2:如果项目文件较多,可以右击项目根目录,进行上述的添加操作
添加至暂存区以后,如果需要进行代码的提交本地库操作,则按照下面指示进行:
编写完提交日志信息,点击Commit
按钮提交即可,提交完成以后文件将由绿色变成最初的黑色:
查看Git提交的版本信息,可以点击下方的Version COntrol
中的Log
信息:
如果想要切换版本,直接选择想要切换的版本,右击,选择Checkout Revision 'xxxx'
即可:
此时,黄色的箭头(Head指针)就会指向你所切换的版本位置。
分支的创建:
在弹出的Git Branches
框里,点击New Branch
按钮
填写分支的名称:pro-fix
等待分支创建成功以后,右下角会出现此时分支已经切换为prp-fix:
如果此时想要切换回maser分支,则直接点击master
分支,选择checkout
即可:
合并分支:
处于master
分支下,点击pro-fix
分支中的Merge into Current
按钮,将其合并到当前分支(即master分支)
注意
如果代码没有冲突,分支直接合并成功,分支合并成功以后,代码自动提交,无需手动提交本地库
如果两个分支的代码存在冲突,需要我们手动进行合并,最后点击Apply
应用即可
点击Settings
,选择Version Control
,再选取GitHub
,登录GitHub账号:
右上角有一个+
号,点击进行账号密码登录,但是经常性地报错404,无法正常登录:
此时我们采取另一种登录方式Use Token
,进行账号的登录,那token如何获取??
我们进入GitHub
账号,点击右上角的头像,选择Settings
,里面点击Developer settings
,然后选择Personal access tokens
生成以后,一定要将其复制下来,刷新以后就没有了!!!
此时,我们将生成的token令牌用于IDEA绑定GitHub,就不会出现一直失败的情况
使用IDEA将项目代码分享到GitHub上也比较简单,直接点击VCS
,然后选择Import Version Control
,再选择Share Project on GitHub
然后编写Reposity name
,再选择share
等待一段时间,就会报上传成功提示,此时登录GitHub账号,即可查看到上传的代码信息:
如果IDEA本地代码发生了一些改变,此时需要推送至GitHub远程本地库,此时可以直接右击项目,选择Git
,再选择Repository
,最后点击Push
进行推送操作
这里建议使用SSH
远程连接方式进行Push
操作,即复制GitHub该仓库的SSH连接地址,在IDEA中Define Remote
的URL路径中粘贴复制的SSH地址:
此时进行push操作,速度比较快…
注意:
点击VCS
,然后选择Git
中的Pull进行远程代码的拉取操作:
注意:
New
–>Project from Version Control
--> Git
此时复制GitHub中的https仓库连接地址或者SSH地址,即可克隆该项目:
码云是开源中国推出的基于 Git的代码托管服务中心, 网址是 https://gitee.com/
默认情况下,Idea不带码云插件,需要我们自己安装Gitee插件,安装完毕以后在Settings
--> Version Control
中就能够看到我们的Gitee
:
选择add Account
输入注册的码云账号(邮箱)和密码即可绑定码云
如果想要将项目代码上传到码云的远程仓库中去,一种方法是直接上传:VCS
--> import
--> Share Project on Gitee
或者使用Push
的方式进行推送,先在码云上创建对应的远程仓库,并复制对应的https
地址
接着在IDEA中使用Push操作进行上传操作:
选择Define Remote
:
将远程的访问链接进行粘贴,接着进行Push操作即可
新建仓库
,进入其中,直接选择从其他位置导入
: