一、什么是Git
Git(读音为/gɪt/),是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。(通俗易懂的理解是多人开发项目的代码提交整合工具)
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
优点:
- 适合分布式开发,强调个体。
- 公共服务器压力和数据量都不会太大。
- 速度快、灵活。
- 任意两个开发者之间可以很容易的解决冲突。
- 离线工作。
二、Git安装
Git安装基本是傻瓜式,三部曲(下载,安装,配置环境变量)可以参考下方教程:
三、Git配置SSH访问
安装好之后,最重要的来了!
(这一步一定要配置好,关系到git上传下载项目)
四、Git功能介绍
有 Git Bash
、Git CMD
、Git FAQs
、Git GUI
、Git Release Note
,下面我们就分别简单介绍一下。
4.1 Git Bash
Git Bash
是基于CMD的,在CMD的基础上增添一些新的命令与功能,平时主要用这个,功能很丰富
4.2 Git CMD
Git CMD
不能说和 cmd 完全一样,只能说一模一样,功能少得可怜,两者如下图:
4.3 Git FAQs
Git FAQs
就是 Git Frequently Asked Questions(常问问题),访问地址:FAQ · git-for-windows/git Wiki · GitHub
4.4 Git GUI
Git GUI
就是 Git 的图形化界面,如下图:
可以通过它快速创建新仓库(项目),克隆存在的仓库(项目),打开存在的仓库(仓库)
。
(虽然但是,学会基本命令,程序员一般都用命令行,这个就显得很鸡肋)
4.5 Git Release Note
Git Release Note
就是版本说明,增加了什么功能,修复了什么 bug 之类的。
五、Git基本命令
5.1常见命令
- git config:配置信息
- git add:添加文件到缓存命令
- git status:查看文件的状态命令
- git diff:查看更新的详细信息命令
- git commit:提交命令
- git reset HEAD:取消缓存命令
- git rm:删除命令
- git mv:移动或重命名命令
5.2实例1:
首先要配置好ssh公钥:
0、安装好git后在指定目录下鼠标右键gitbash here
弹出命令行窗口:
1、配置本地用户名及邮箱
-
# 配置用户名
-
git config --global user.name "用户名"
-
# 配置邮箱
-
git config --global user.email "邮箱地址"
以上命令执行结束后,可用 git config --global --list 命令查看配置是否成功
2、git生成公钥
1)在git bash窗口输入下面指令即可生成带注释的公钥
ssh-keygen -t rsa -C '邮箱地址'
2)设置存放公钥的位置,默认的话直接回车键确认
3)输入密码和确认密码,不设置密码直接按回车键
3、git查看ssh公钥的方法
1)通过git bash命令窗口
①直接输入cat ~/.ssh/id_rsa.pub即可查看
②逐步进入目录打开文件
a.进入.ssh目录:cd ~/.ssh
b.找到id_rsa.pub文件:ls
c.查看公钥:cat id_rsa.pub 或者vim id_rsa.pub
2)直接打开用户目录下的.ssh文件夹,打开里面的id_rsa.pub文件即可查看
下载项目
1、进入想要下载项目到目的文件夹下,然后右键点击
Git Bash Here
2、在命令行里使用git clone (目标下载项目git url)
目标下载项目git url下例:
(一般直接用git base启动git,但是我一般习惯用cmd,用cmd必须要先确保添加git环境变量)
按下回车,开始下载!
5.3实例二:创建一个自己的远程仓库
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
5.5实例五:常规操作
1、查看修改文件:
git status
2、添加修改文件到缓存:
git add .
再次用git status 命令查看缓存文件:
3、将暂存区里的改动提交到本地的版本库:
git commit -m '备注'
4、push到远程仓库
git push -u origin master
5.6实例六:跟新远程仓库版本到本地:
1、查看远程仓库:
git remote -v
2.从远程获取最新版本到本地
命令git fetch origin master:temp 这句命令的意思是:从远程的origin仓库的master分支下载到本地并新建一个分支temp
(```)
$ git fetch origin master:tempFrom git@gitee.com:Devilfromhell/advertising_board_fore.git
* [new branch] master -> temp
(```)
3.比较本地的仓库和远程参考的区别
命令git diff temp 命令的意思是:比较master分支和temp分支的不同
4.合并temp分支到master分支
git merge temp 合并temp分支到master分支
5.如果不想要temp分支了,可以删除此分支
git branch -d temp
如果该分支没有合并到主分支会报错,可以用以下命令强制删除git branch -D <分支名>
5.7实例七:建立分支并提交
1、git branch -a 查看分支信息
2、git chenckout -b demo 创建并切换到demo分支(在之前在远程仓库上建立demo分支“好像也不需要”)
3、git add . 添加跟新的代码文件
4、git commit -m "备注信息" 提交缓存区
5、git pull origin demo --allow-unrelated-historie 强推(不强推有一些报错)
6、git push -u origin master 推到远程仓库
六、报错解决
问题报错:
$ 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文件不一致,导致无法更新合并远程仓库(自我理解,勿喷望指教!)