目录
1、git的工作流程
2、下载安装git
3、git的常用命令
3.1 环境配置
3.2 初始化仓库
3.3 文件状态
3.4 查看文件状态
3.5 加入暂存区
3.6 移除暂存区
3.7 提交到本地仓库
3.8 直接提交到本地仓库
3.9 删除文件
3.10 提交删除
3.11 查看日志
3.12 忽略列表
3.13 查看远程仓库
3.14 添加远程仓库
3.15 从远程仓库克隆
3.16 移除远程仓库
3.17 抓取与拉取
3.18 推送到远程仓库
3.19 查看分支
3.20 创建分支
3.21 切换分支
3.22 合并分支
3.23 删除分支
1.从远程仓库中克隆代码到本地仓库
2.从本地仓库中checkout代码然后进行代码修改
3.在提交前先将代码提交到暂存区
4.提交到本地仓库。本地仓库中保存修改的各个历史版本
5.修改完成后,需要和团队成员共享代码时,将代码push到远程仓库
下载地址:Git - Downloads https://git-scm.com/download
桌面空白处鼠标右键出现以下功能表示安装成功
设置用户信息
git config --global user.name ""
git config --global user.email ""
查看配置信息
git config --list
git config user.name
通过上面的命令设置的信息会保存在~/.gitconfig文件中
获取Git仓库通常有两种方式:
在本地初始化一个Git仓库
从远程仓库克隆
本地初始化仓库
在指定目录下面,右键,选择Git bash here,然后输入git init
命令,如果在当前目录中看到.git文件夹(此文件夹为隐藏文件夹)则说明Git仓库创建成功
git init
从远程仓库克隆
可以通过Git提供的命令从远程仓库进行克隆,将远程仓库克隆到本地,命令形式为:git clone 远程Git仓库地址
git clone https://gitee.com/xxx/demo01.git
相关概念:
版本库:前面看到的.git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等
工作目录(工作区):包含.git文件夹的目录就是工作目录,主要用于存放开发的代码
暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方
Git工作目录下的文件存在两种状态
untracked 未跟踪(未被纳入版本控制)
tracked 已跟踪(被纳入版本控制)
Unmodified 未修改状态
Modified 已修改状态
Staged 已暂存状态
这些文件的状态会随着我们执行Git的命令发生变化
git status # 输出信息较多
git status -s # 输出信息比较简洁
git add hello.java # 将未跟踪的文件加入到暂存区
git reset hello.java # 将暂存区的文件取消暂存
git commit -m "初始化提交hello.java" hello.java # 将暂存区的文件提交到本地仓库
git commit -am "提交修改" # 不经过暂存区,直接提交本地仓库
注意:commit -a 只对修改和删除有效,对于新增的文件还是先要执行add操作
git rm hello.java # 删除文件
git commit -m "delete commit" # 将删除的文件提交本地仓库
git log
一般我们总会有些文件无需纳入Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。 在这种情况下,我们可以在工作目录中创建一个名为 .gitignore 的文件(文件名称固定),列出要忽略的文件模式。下面是一个示例:
# no .a files
*.a
# but do track lib.a, even though you're ignoring .a files above
!lib.a
# only ignore the TODO file in the current directory, not subdir/TODO
/TODO
# ignore all files in the build/ directory
build/
# ignore doc/notes.txt, but not doc/server/arch.txt
doc/*.txt
# ignore all .pdf files in the doc/ directory
doc/**/*.pdf
如果想查看已经配置的远程仓库服务器,可以运行 git remote 命令。 它会列出指定的每一个远程服务器的简写。 如果已经克隆了远程仓库,那么至少应该能看到 origin ,这是 Git 克隆的仓库服务器的默认名字
git remote # 查看远程仓库
git remote show origin # 查看远程仓库输出更详细的信息
运行 git remote add
git remote add origin https://gitee.com/strong7217/demo-git01.git # 将本地仓添加一个新的远程Git仓库(关联)
Git 克隆的是该 Git 仓库服务器上的几乎所有数据(包括日志信息、历史记录等),而不仅仅是复制工作所需要的文件。 当你执行 git clone 命令的时候,默认配置下远程 Git 仓库中的每一个文件的每一个版本都将被拉取下来
git clone https://gitee.com/strong7217/demo-git01.git # 从远程仓库克隆到本地仓库
git remote rm origin # 将本地仓库跟远程仓库的关联移除
git fetch 是从远程仓库获取最新版本到本地仓库,不会自动merge(合并)
git fetch origin master # 从远程仓库的指定分支获取最新的版本到本地
git merge origin/master # 合并代码(不合并本地看不到拉取下来的代码)
git pull 是从远程仓库获取最新版本并merge到本地仓库
git pull origin master # 从远程仓库中拉取代码(自动合并)
注意:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal: refusing to merge unrelated histories ),解决此问题可以在git pull命令后加入参数--allow-unrelated-histories
git push origin master # 将本地仓库的代码推送到远程仓库
git branch # 列出所有本地分支
git branch -r # 列出所有远程分支
git branch -a # 列出所有本地分支和远程分支
git branch b1 # 创建本地分支b1
git checkout b1 # 切换v
注意:git在切换分支之前要确保当前分支没有未提交的修改,将当前分支内容进行commit之后再切换到其他分支,就看不到当前分支修改过的内容了
git merge b1 # 合并b1分支
一般都是在主分支下合并其它分支,有时候合并操作不会如此顺利。 如果你在两个不同的分支中,对同一个文件的同一个部分进行了不同的修改,Git 就没办法合并它们,同时会提示文件冲突。此时需要我们打开冲突的文件并修复冲突内容,最后执行git add命令来标识冲突已解决
git branch -d b1 # 删除分支,删除本地分支
如果要删除的分支中进行了一些开发动作,此时执行上面的删除命令并不会删除分支,如果坚持要删除此分支,可以将命令中的-d参数改为-D
git push origin -d b1 # 删除分支,删除远程分支