Git 2.24.0 最新版下载安装 配置使用 基本命令 本地仓库 远程仓库
Git(读音为/gɪt/。中文 饭桶 )是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
GIT一般工作流程如下:
1.从远程仓库中克隆 Git 资源作为本地仓库。
2.从本地仓库中checkout代码然后进行代码修改
3.在提交前先将代码提交到暂存区。
4.提交修改。提交到本地仓库。本地仓库中保存修改的各个历史版本。
5.在修改完成后,需要和团队成员共享代码时,可以将代码push到远程仓库。
下图展示了 Git 的工作流程:
Git官网:https://git-scm.com/downloads
Linux版本下载地址 : https://mirrors.edge.kernel.org/pub/software/scm/git/
Windows版本:
我这里Windows版本使用的是绿色版.(安装版下载后傻瓜式安装即可),绿色版双击后之会执行解压缩动作.
2.24.0Portable. 这个版本解压后,也不大约占空间 285M
解压后会在根路径下看到 git-bash.exe,双击打开之后可以写Linux命令及其git命令;
解压后会在根路径下看到git-cmd.exe,双击打开之后可以写Windows命令及其git命令;
在cmd目录里面我们可以看到GIT提供的图形化界面;如下图所示,
GIT图形化界面工具(小乌龟出品的) https://tortoisegit.org/download/
下载后双击安装,我们注意安装过程中选择 OpenSSH这个
在后面的配置过程中选择我解压的git的路径
然后再不用改动,直到完成即可。
装好之后,鼠标右键 可以看到 装好的 TortoiseGit
小乌龟官网有 语言包,如果想用中文版的就下载下来安装,安装之后在设置里面选择语言。
初始化本地仓库(命令 图形化界面操作均可) 注意打开隐藏文件,否则看不到.git
git init
小乌龟图形化界面 Git Create repository here
在与.git隐藏文件同级目录(也就是git_repo目录里面创建一个 test.txt文件),将其加入暂存区
git add : 就是将文件放入到暂存区
Git与SVN的一个不同之处就是它有暂存区的概念。
工作区(Working Directory):就是电脑上能看到的实实在在的目录,诸如上面的git_repo就是一个工作区;
版本库(): .git 隐藏文件夹才是真正的版本库;
Git版本库中有很多内容,其中就有个叫暂存区(stage或Index),还有git会为我们自动创建一个主分支master,及其指向master的指针HEAD。
如图:
git commit :将暂存区的内容提交到版本库(注意它提交的时候,必须要写描述)
git log :查看历史提交日志
git reflog :简洁形式显示提交的版本和日志信息
git status :查看状态
git reset --hard 版本号唯一标识(使用 git reflog前面显示的短的版本号标识即可) :版本切换,可以切换到任意版本的状态
可以反复修改该文件,然后直接提交;
选中该文件,右键“TortoiseGit”-->Show log --> 我们可以看到每次修改情况,如果要比对某两次的版本的化,选择其中的两条,右键-->Compare revisions-->看两次差异
如果想在版本库中删除某个文件,但是本地依然保留着,可以这么做?
==> github提交时,用户权限被拒(账号问题)
在"控制面板"->"用户账户"->"管理windows凭据"-> 可以发现有git:https//github.com的用户凭据,展开信息可以看到相关账号的信息,可以把这个凭据删除。 删除之后再次提交会让重新输入github的用户名和密码,或者是更改为自己的信息即可成功push.
==> github提交时,提示没有权限
问题场景:我已经是该项目的Developer, 可是提交代码依然提示无权限 这是由于我是在master上直接提交的, 而GitLab默认是保护master分支的, push只对Manifest开放
解决办法:设置GitLab中的Protected Branches 解除对master的保护(Settings-->Repository)
不过多人在master分支上开发,是很不严谨的, 出了问题会很麻烦, 正规的还是老老实实在自己的分支开发,最后merge到master
==> 把本地项目推送至Github仓库
git push -u origin master
出现如图所示问题 则是因为本地仓库缺少readme文件,解决方法是通过如下命令进行代码合并【注:pull=fetch+merge]
git pull --rebase origin master
推送成功后,可以在github中看到项目文件,当然你可以利用github图形界面提示直接上传文件,这里小编只是想给大家介绍以下git的使用,它在团队协作中必不可少。
==========================================华丽的分割线===============================================
分支是:由每次提交代码所形成的一条时间线。
最开始只有一个分支叫master分支,Master它是一个指针,始终指向着最后代码提交的版本;;;还有一个Head指针始终指向着当前正在使用的分支。
我们在某次提交的版本之上创建了一个新分支叫Dev,如果要想使用新分支就让Head指向Dev分支。
在新的分支上开发完代码,提交了版本后 Dev指针随着提交而变动,但是Master指针使用不发生变化。
当Dev分支功能开发完成之后,我们要进行分支合并时,只需要让Master指针指向当前Dev所指向的版本的指针上,再让Head指针指回Master指针上,最后把Dev分支删除,最后就还是剩下一个主分支。
git branch 分支名 : 创建分支
git checkout 分支名 : 切换分支
git branch : 查看所有分支
不同分支之间的关系是平行关系,不会相互影响.
git merge 分支名 : 切换到主分支,然后再执行该命令把 指定分支合并到主分支上
git branch -d 分支名 : 删除指定分支
git branch : 查看所有分支
==========================================华丽的分割线===============================================
远程仓库工作流程
远程仓库平台介绍:
Github: https://github.com 全球最大的开源项目托管平台
码云: https://gitee.com 全国最大的开源项目托管平台,良心平台速度快,提供免费私有库。
关于码云的使用,参见我自己的这篇文章描述。 https://www.cnblogs.com/xin1006/p/11247025.html
关于Idea与Git的使用,参见我自己的这篇文章描述。https://www.cnblogs.com/xin1006/p/13269797.html
未经作者 https://www.cnblogs.com/xin1006/ 梦相随1006 同意,不得擅自转载本文,否则后果自负