一、Git的简介
-
本地仓库
仓库(repository),又名版本库,可理解成一个目录,用于存放代码,这个目录里面的所有文件读可以被Git管理,每个文件的修改、删除等操作Git都能跟踪。1.1. 工作流程
1.2. Git与GitHub的区别
Git 是一个分布式版本控制系统,用户记录一个或若干个文件内容变化,以便将来查阅特点版本修订情况的软件。
GitHub (https://www.gothub.com)是一个为用户提供Git服务的网站,简单说是一个可以放代码的地方。GitHub除了提供管理Git的web界面外,还提供了订阅、关注、讨论组、在线编辑器等丰富的功能。
二、安装教程
-
安装目录
-
选择需安装的组件(默认即可,直接下一步)
-
使用编译器(默认即可,直接下一步)
-
环境变量调节
-
使用OpenSSH,直接下一步即可
-
使用OpenSSL库
-
配置命令行会话(默认即可)
-
配置终端(默认即可)
-
安装完成
-
出现“Git GUI Here”、“Git Bash Here”则安装成功
三、本地仓库操作
11. 安装完成后,首次使用需进行全局配置
右键,点击Git Bash Here,打开Git命令行窗口。
$ git config --global user.name "GitHub注册的用户名"
$ git config --global user.email "GitHub注册的邮箱地址"
- 创建仓库
2.1. 创建空目录
2.2. 在命令行中进入项目目录pro_git
2.3. Git仓库初始化(指令:git init)
- Git常用指令操作
3.1. 查看当前状态:git status
3.2. 添加到缓存区:git add 文件名
3.3. 提交至版本库:git commit -m “注释内容”
3.4. 查看版本:git log
orgit log --pretty=oneline
3.5. 回退操作:git reset --hard 提交编号 commit id
3.6. 查看历史操作:git reflog
总结:
a. 回到过去,必须先得到commit id,然后通过git reset –hard 进行回退;
b. 回到未来,需要使用git reflog进行历史操作查看,得到最新的commit id;
c. 在写回退指令的时候commit id可以不用写全,git自动识别,但是也不能写太少,至少需要写前4位字符;git
四、线上仓库操作
-
线上仓库创建
-
基于http/https协议
2.1 获取线上仓库地址
2.2 使用clone指令克隆线上仓库到本地:git clone 线上仓库地址
2.3 提交到线上仓库:git push
(提交暂存区 → 提交本地仓库 → 提交线上仓库 → 拉取线上仓库)
在首次往线上仓库shop提交内容的时候出现了403的致命错误,原因是不是任何人都可以往线上仓库提交内容,必须需鉴权。
2.4 修改.git/config 配置文件,增加用户名和密码。
修改后提交成功,不用再鉴权。
2.5 拉取线上仓库:git pull
-
基于ssh协议
该方式与前面https方式相比,只是影响github对于用户的身份鉴权方式,对于git的具体操作(如提交本地、添加注释、提交远程等操作)没有任何影响。3.1 生成客户端公私玥文件:
ssh-keygen -t rsa -C "注册邮箱"
私钥:id_rsa
公钥:id_rsa.pub
3.2 将公钥上传到Github
记事本打开公钥:
上传公钥文件内容(id_rsa.pub)
五、分支管理
每次提交后都会有记录,Git把它们串成时间线,形成类似于时间轴的东西,这个时间轴就是一个分支,我们称之为master分支。
在开发的时候往往是团队协作,多人进行开发,因此光有一个分支是无法满足多人同时开发的需求的,并且在分支上工作并不影响其他分支的正常使用,会更加安全,Git鼓励开发者使用分支去完成一些开发任务。
-
查看分支:
git branch
注意:当前分支前面有个标记“*”。 -
创建分支:
git branch 分支名称
-
切换分支:
git checkout 分支名称
-
删除分支:
git branch -d 分支名称
注意:在删除分支的时候,一定要先退出要删除的分支,然后才能删除。
-
合并分支:
git merge 分支名称
六、冲突的产生与解决
- 冲突产生
当上传代码修改提交到线上仓库(git push)与库中存在冲突时,返回异常提示。
- 冲突解决
2.1 先 git pull ,将线上与本地仓库的冲突合并到了对应的文件中
2.2 修改文件,再重新提交
七、图像管理工具
-
Github for Desktop
Github出品的软件,功能完善,使用方便。对于经常使用GitHub的开发人员来说是非常便捷的工具。界面干净,用起来非常顺手,顶部的分支时间线非常绚丽 -
Source tree
老牌的Git GUI管理工具了,也号称是最好用的Git GUI工具。功能丰富,基本操作和高级操作都非常流畅,适合初学者上手。
-
TortoiseGit
对于熟悉SVN的开发人员来说,这个小乌龟图标应该是非常友善了。TortoiseGit 简称 tgit, 中文名海龟Git。它与其前辈TortoiseSVN都是非常优秀的开源版本控制客户端软件。