一:什么是Git?
Git是一个版本控制系统,用于记录一个或多个文件内容变化,方便我们查阅特定版本的修改情况
以前在没有版本控制的时候,我们通常在项目根目录下这样命名项目:project_v1、project_v1.1、project_v2等等,通过这种方式记录我们项目的不同版本修改,有的时候还会在不同版本的文件中写一个说明,记录此版本项目新增、修改,删除等操作,这样的操作是很繁杂的,有的时候还可能因为一些非人为因素导致文件丢失的事故。有了版本控制系统,我们就不用再手动进行一些繁杂的操作,并且对于文件丢失这种事故我们也不用再担心,你可以随便回到历史记录的某个版本
对于Git,每个开发者都会从服务器上克隆一个完整的版本库到本地工作区域,在工作区域中有文件增删改时需要先添加到暂存区再提交到本地仓库,就算没有网络,也可以提交代码到本地仓库、查看log、创建项目分支等等,之后推送后才会到远程仓库
Git中的工作流:
添加:添加到暂存区
提交:将暂存区的内容提交到本地仓库
推送:将本地仓库推送到远程仓库
二:安装并配置Git
——到Git官网下载Git:Git - Downloads
——配置用户名和邮箱
git config --global user.name "username"
git config --global user.email "username@email.com"
——配置SSH:配置SSH KEY_Hello Bug.的博客-优快云博客
查看Git安装的相关命令:
——是否安装Git:git --version
——Git安装位置:which git
——查看Git的配置信息:git config --list
如果服务器上的版本比本地版本新则必须先拉取再推送,否则不能成功推送
三:使用流程——TortoiseGit工具
下载地址:https://tortoisegit.org/download/
——从服务器上克隆仓库到本地工作区域:右键—Git 克隆—输入git地址和选择克隆到的目录
——添加和提交:右键—Git 提交—选择要提交的文件勾选,并选择提交(可以提交+推送一起进行)
添加:添加到暂存区
提交:提交到本地仓库
——推送:右键—Git 推送(推送到远程仓库)
——拉取:右键—Git 拉取
——还原:右键—Git 提交—选择要还原的条目并右键选择还原
——新建分支:右键—TortoiseGit—创建分支
——切换分支:右键—TortoiseGit—切换/检出分支
——整体合并:右键—TortoiseGit—合并—选择从哪个分支合并到当前分支
——单独合并:右键—TortoiseGit—显示日志—选择要单独合并的条目并右键选择合并
——子模块:一个仓库包含其他仓库
1.添加子模块:右键—TortoiseGit—添加子模块
2.克隆带子模块的仓库:需要勾选上递归
四:使用流程——命令行
——从服务器上克隆仓库到本地工作区域:git clone 仓库地址
——添加:git add 文件名或者git add .(.代表全部文件)
添加操作就是选择我们即将要提交的文件
——提交:git commit -m"提交说明"
提交操作就是将选择为添加的文件提交到本地仓库
——推送:git push或git push origin 分支名
推送操作就是将本地提交的所有文件推送到服务器上
——拉取:git pull或git pull origin 分支名
拉取操作就是服务器上的文件拉取到本地
其他常用命令:
——创建分支但依然停留在当前分支:git branch 新建分支名
——创建分支并切换到新的分支:git checkout -b 新建分支名
——切换分支:git checkout 分支名
——将本地分支推送到远程:git push origin 分支名
——合并分支:git merge 分支名(将指定分支合并到当前分支)
——查看分支(只有本地):git branch
——查看分支(只有远程):git branch -r
——查看分支(本地和远程) :git branch -a
——删除本地分支(无论当前分支是否合并到主分支上都强制删除):git branch -D 分支名
——删除本地分支(当前分支合并到主分支上才能够删除):git branch -d 分支名
——删除远程分支:git push origin --delete 分支名
——删除无效分支(远程已删除本地没删除的分支):git fetch -p
——查看当前分支有变更的文件:git status
——查看当前分支的历史提交记录:git log(按q退出)
——查看当前分支历史每次提交发生变更的文件:git log --stat(按q退出)
——查看指定文件的版本提交历史:git log --follow 文件名.后缀
——查看所有提交过的用户,按照提交次数排序:git shortlog -sn
——重置操作:git reset --hard
五:忽略文件.gitignore
空文件夹会被自动忽略掉
在项目根目录下创建忽略文件:命令行输入 touch .gitignore
忽略文件编写规则:
——忽略某个文件:test.txt
——忽略某个文件夹(包括当前目录及子目录):Temp/
——忽略某个文件夹(只包括当前目录):/Temp/
——忽略某个后缀的文件:*.mp3
——忽略以某个字符串开头的文件:Temp/Info*
——不忽略某个文件:!*.mp3
——不忽略某个文件夹:!Temp/
六:常见问题
——