一、什么是Git
Git(读音为/gɪt/),是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。(通俗易懂的理解是多人开发项目的代码提交整合工具)
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
优点:
- 适合分布式开发,强调个体。
- 公共服务器压力和数据量都不会太大。
- 速度快、灵活。
- 任意两个开发者之间可以很容易的解决冲突。
- 离线工作。
二、Git安装
Git安装基本是傻瓜式,三部曲(下载,安装,配置环境变量)可以参考下方教程:
Git官方下载链接
Git安装教程
三、Git配置SSH访问安装好之后,最重要的来了!
gitee创建SSH key
(这一步一定要配置好,关系到git上传下载项目)
四、Git功能介绍
有 Git Bash、Git CMD、Git FAQs、Git GUI、Git Release Note,下面我们就分别简单介绍一下。
4.1 Git BashGit Bash 是基于CMD的,在CMD的基础上增添一些新的命令与功能,平时主要用这个,功能很丰富
4.2 Git CMDGit CMD 不能说和 cmd 完全一样,只能说一模一样,功能少得可怜,两者如下图:
4.3 Git FAQsGit FAQs 就是 Git Frequently Asked Questions(常问问题),访问地址:FAQ · git-for-windows/git Wiki · GitHub
4.4 Git GUIGit GUI 就是 Git 的图形化界面,如下图:
可以通过它快速创建新仓库(项目),克隆存在的仓库(项目),打开存在的仓库(仓库)。
(虽然但是,学会基本命令,程序员一般都用命令行,这个就显得很鸡肋)
4.5 Git Release NoteGit Release Note 就是版本说明,增加了什么功能,修复了什么 bug 之类的。
五、Git基本命令 5.1常见命令常用命令详解
- git config:配置信息
- git add:添加文件到缓存命令
- git status:查看文件的状态命令
- git diff:查看更新的详细信息命令
- git commit:提交命令
- git reset HEAD:取消缓存命令
- git rm:删除命令
- git mv:移动或重命名命令
1、进入想要下载项目到目的文件夹下,然后右键点击
Git Bash Here
2、在命令行里使用git clone (目标下载项目git url)
目标下载项目git url下例:
(一般直接用git base启动git,但是我一般习惯用cmd,用cmd必须要先确保添加git环境变量)
按下回车,开始下载!
5.3实例二:创建一个自己的远程仓库1、先在gitee官网创建远程仓库
2、gitee远程仓库与本地仓库关联
5.4实例三:上传代码到远程仓库1、进入你想上传的项目文件夹下,然后右键点击
git base here
#配置你的用户名和邮箱
# $ git config --global user.name "xxx"
# $ git config --global user.email "xxx"
#查看用户名和密码
# $ git config user.name
# $ git config user.email
#(配置好的,可以跳过这步)
2、初始化本地环境,把该项目变成可被git管理的仓库
git init
3、添加该项目下的所有文件
git add . (注意这里有个点)
(. 表示全部文件,也可只添加某个文件,将.换为要提交的文件名即可)
4、将本地代码库与远程代码库相关联
git remote add origin https://gitee.com/qlqaq/projects/仓库名称
5、将本地代码推送到指定远程的仓库中
git push -u origin master
5.5实例四:回退版本
1.输入命令查看本地记录
git reflog
列表记录:
2.找到本次rebase之前的id
3.执行命令回退
git reset --hard ca606c6
4.执行命名取消rebase状态
git rebase --abort六、报错解决
问题报错:
- $ git push origin master
- To ../remote/
- ! [rejected] master -> master (non-fast forward)
- error: failed to push some refs to '../remote/'
问题(Non-fast-forward)的出现原因在于:git仓库中已经有一部分代码,所以它不允许你直接把你的代码覆盖上去。于是你有2个选择方式:
1,强推,即利用强覆盖方式用你本地的代码替代git仓库内的内容
git push -f
2,先把git的东西fetch到你本地然后merge后再push
$ git fetch
$ git merge
这2句命令等价于git pull
找到的方法原文链接
但是我还是报错没有解决,最后是把远程仓库的.git文件覆盖一下本地的.git后成功了!
分析原因:本地.git文件里修改与远程仓库的git文件不一致,导致无法更新合并远程仓库(自我理解,勿喷望指教!)



