-
环境配置
下载安装git: Git (git-scm.com)
安装完成后:右击鼠标 看到 Git GUI Here 跟 Git Bash Here 及安装成功
右击 : 点击 Git Bash Here
设置及全局用户名
git config --gloabl user.name ""
设置全局邮箱
git config --gloabl user.email ""
-
获取Git仓库
获取Git仓库有两种方式:
在本地初始化一个Git仓库
创建一个文件夹双击进去,鼠标右击 点击Git Bash Here
输入命名 : git init(初始化)
从远程仓库克隆
创建一个文件夹双金进去,鼠标右击 点击Git Bash Here
git clone https://gitee.com/Liukaixin66/my-repo1.git
输入命令 : git clone(克隆) 仓库URL
-
工作目录 暂存区以及版本库概念
版本库 : 前面可到的.git隐藏文件夹就是版本库,版本库中存储了很多配置信息,日志信息和文件版本信息的呢等
工作目录(工作区) : 包含.git文件夹的目录就是工作目录,主要用于存放开发的代码
暂存区 : .git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修 改文件的地方
-
Git工作目录下文件的两种状态
这些文件的状态会随着我们执行Git的命令发生变化
untracked 未跟踪(未被纳入版本控制)
tracked 已跟踪(被纳入版本控制)
Unmodified 未修改状态
Modified 已修改状态
Staged 已暂存状态
-
本地仓库的操作
使用git status查看文件状态
点击进入工作目录 鼠标右击 点击Git Bash Here
输入命令 : git status (可以加 -s )
使用git add 文件名 将未跟踪的文件加入暂存区(加入暂存区就是已跟踪状态)
点击进入工作目录 鼠标右击 点击Git Bash Here
输入命令 : git add hello.txt
使用git reset HEAD 文件名 将已跟踪状态改为未跟踪状态
点击进入工作目录 鼠标右击 点击Git Bash Here
输入命令 : git reset HEAD hello.txt
使用git commit将暂存区的文件修改提交到本地仓库(提交后为 未修改状态)
点击进入工作目录 鼠标右击 点击Git Bash Here
-m为可以备注信息 "写入日志的信息"
输入命令 : git commit - m "init hello.txt"
输入命令 : git commit -a -m "init hello.txt"
这条命令可以提交到本地库
使用git rm 删除文件 删除后文件会进入暂存区执行 git commit才彻底删除
点击进入工作目录 鼠标右击 点击Git Bash Here
输入命令 : git rm hello.txt
将文件添加至忽略列表
一般我们总会有些文件无需Git的管理,也不希望他们总出现在未跟踪文件列表。通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。在这种情况下,我们可以在工作目录中创建名为.gitgnore的文件(文件名称固定),列出需要忽略的文件模式
``` *.a 表示忽略任意 .a 扩展名的文件 !lib.a !感叹号为取反 如果上文 忽略了 加上感叹号就是不忽略 /TODO 忽略TODO文件 build/ build目录下的所有文件都忽略 dos/*.txt doc目录下 *.txt后缀的都忽略 dos/*/.pdf doc目录下所有文件夹中的*.pdf忽略
windows下无法创建.gitgnore 我们可以进入工作目录鼠标右击 点击Git Bash Here
输入命令 : touch .gitgnore 即可创建完成 touch为linux创建文件命令
然后使用记事本打开 输入要忽略的文件名
例如 A.txt *.class *.java day/www.pdf
使用 git log 查看日志记录
点击进入工作目录 鼠标右击 点击Git Bash Here
输入命令 : git log 查看日志记录
-
远程仓库的使用
查看远程仓库
使用git remote命令查看已经配置的远程仓库服务器
点击进入工作目录 鼠标右击 点击Git Bash Here
输入命令 : git remote (-v 参数更详细信息) (show origin(为名称) 更加详细信息)
会列出指定的每一个远程服务器的简写。如果已经克隆那么至少能看到orgin
这是Git克隆的仓库服务器的默认名字
添加远程仓库 一个本地仓库可以添加多个远程仓库
使用git remote add <shortname> <url> 添加远程仓库
点击工作目录 鼠标右击 点击Git Bash Here
输入命令 : git remote add lkx https://gitee.com/Liukaixin66/my-repo1.git
lkx 为名称(跟默认originlei一样)
从远程仓库克隆
如果你想获得一份已经存在了的Git仓库的拷贝,这时就要用到git clone 命令
Git克隆的是该Git仓库服务器上的几乎所有数据(包括日志.历史记录等),而不仅仅是复制工作所需要的
所需要的文件。当你执行git clone命令的时候,默认配置下远程仓库中的每一个文件的每一个版本都将被拉去下来。
使用命令git clone <url>
创建空白文件夹点击进入 鼠标右击点击Git Besh Here
输入命令 : git clone https://gitee.com/Liukaixin66/my-repo1.git
移除无效的远程仓库
使用git remote rm <仓库名> 移除无效的远程仓库
点击工作目录进入 鼠标右击点击Git Bash Here
输入命令 : git remote rm lkx
此命令只是 从本地一处远程仓库的记录,并不会真正影响远程仓库
从远程仓库中抓取与拉取
抓取
使用git fetch 命名了从远程仓库获取最新版本到本地仓库,不会自动merge合并
点击工作目录进入 鼠标右击点击Git Bash Here
输入命令 : git fetch
完成后需要输入命令 合并
输入命令 : git merge origin/master
拉取
使用命令git pull 是从远程仓库获取最新版本并合并merge到本地仓库
点击工作目录进入 鼠标右击点击Git Bash Here
“名称”
输入命令 : git pull origin https://gitee.com/Liukaixin66/my-repo1.git
注意: 如果当前的本地仓库不是从远程仓库克隆的,而是本地创建的仓库,并且仓库中
存在文件,此时再从远程 仓库拉去文件的时候会报错 (fatal : refusing to merge
unrelated histories),解决此问题可以在git pull命令后加入参数
--allow-unrelated-histories
推送远程仓库
使用命令 git push <昵称> <文件夹> 可将其推送到远程仓库
注意: 需要先将未提交的的提交到本地库中在使用 推送到远程仓库命令
点击工作目录进入 鼠标右击点击Git Bash Here
输入命令 : git push origin master
-
分支
查看分支
列出所有本地分支
点击工作目录进入 鼠标右击点击Git Bash Here
git branch
列出所有远程分支
git branch -r
列出所有本地分支和远程分支
git branche -a
注意 : 查看后 分支前面带有 * 号的是你所在的分支
创建分支
git branche 分支名
点击工作目录进入 鼠标右击点击GitBash Here
git branche zhangsan
切换分支
git checkout 分支名
点击工作目录进入 鼠标右击点击GitBash Here
git branche zhangsan
推送至远程仓库分支
git push "昵称" 分支名
点击工作目录进入 鼠标右击点击GitBash Here
git push origin zhangsan
合并分支
git merge "合并分支名"
点击工作目录进入 鼠标右击点击GitBash Here
git merge lisi
删除分支
git branch -d 分支名(删除的是本地仓库的分支)
点击工作目录进入 鼠标右击点击GitBash Here
git branch -d lisi
如果产出的分支中进行了一些开发动作,此时执行善变的删除命令并不会删除分支,如果坚持要
删除此分支,可将命令中的 -d 参数改为 -D
git push "名称" -d 分支名(删除远程仓库分支)
点击工作目录进入鼠标右击点击GitBash Here
git push origin -d lisi
-
标签
概述
Git 可以给历史中的某一个提交打上标签,以示重要。比较有代表性的是人们会使用这个功能来标记发布节点
(v1.0 v1.2等)。标签指的是某个分支某个特定的状态。通过标签,可以很方便的切换到标记时的状态
列出已有的标签
git tag
git show [tagName]
创建新标签
git tag [tagName]
git tag v1.0
将标签推送至远程仓库
git tag 【remote】 【tag】
git tag origin v1.0
检出标签
新建一个分支,指向某个tag
分支
git checkout -b 【branch】【tag】
git checkout -b dev v1.0
删除标签
删除本地标签
git tag -d[tag]
删除远程标签
git push origin :refs/tags/[tag]