莱芜泉网站建设,网站添加二级域名,那样的网站18年,微信小程序管理平台入口目录 Git 安装与设置
在 Windows上安装 Git
git 的配置
Git 原理
git 的四个区域
git 工作流程
git 文件的状态
Git 操作
创建仓库
免密登录
基本操作
版本回退
本地仓库整理
分支命令
合并分支
解决冲突 Git 安装与设置
在 Windows上安装 Git
在 Windows上使…目录 Git 安装与设置
在 Windows上安装 Git
git 的配置
Git 原理
git 的四个区域
git 工作流程
git 文件的状态
Git 操作
创建仓库
免密登录
基本操作
版本回退
本地仓库整理
分支命令
合并分支
解决冲突 Git 安装与设置
在 Windows上安装 Git
在 Windows上使用 Git可以从 Git 官网直接 下载安装程序然后按默认选项安装即可。
安装完成后在开始菜单里找到“Git”-“Git Bash”蹦出一个类似命令行窗口的东西就说明Git安装成功 git 的配置
# 设置当前目录下的用户名和邮箱
git config --global user.name Your Name
git config --global user.email emailexample.com# 查看配置列表
git config -l
Git 原理
git 的四个区域
本地 3 个区域 远程 git 仓库 Workspace工作区即当前工作目录存放代码的位置。Stage/Index暂存区临时存放改动事实上是一个文件保存即将提交的文件列表信息Repository仓库区版本库存放提交的所有版本的数据 HEAD 指向最新的版本。Remote Directory远程仓库托管代码的服务器
git 工作流程 在工作目录中添加、修改文件将需要进行版本管理的文件放入暂存区 git add 文件名将暂存区域的文件提交到仓库 git commit -m 提交信息本地仓库的修改 push 到远程仓库 git push origin master如果失败则执行第5步 将远程仓库的修改拉取到本地 git pull origin master修改冲突回到第3步
git 文件的状态
文件的各状态转化如图所示 Untracked未跟踪。文件未入仓库不参与版本控制。Unmodify文件已入仓库但未修改即工作区与仓库中的文件一致。Modified文件已被修改即工作区与仓库中的文件不一致。Staged暂存状态
Git 操作
创建仓库
git init将当前文件夹作为 Git 仓库并在该文件夹中生成一个 .git目录该目录包含了资源的所有元数据不可修改里面的内容。git init --bare在当前目录生成不带 .git 的项目文件即把 .git 文件夹的内容直接生成到当前目录git init myProject新建一个 myProject 文件夹作为 Git 仓库并在 myProject 文件中新建一个 .git目录git init --bare myProject新建一个 myProject 文件夹作为 Git 仓库并把 .git 文件夹的内容直接生成到 myProject 文件中git clone repo directory克隆一个仓库到指定目录 git init --bare 创建时不带 .git 文件夹事实上它不带工作目录而是作为服务器仓库供各开发者push、pull 数据实现数据共享和同步不保存文件只保存历史提交的版本信息。 免密登录
使用协议 (http, ssh, git等) 来实现远端仓库和本地仓库的交互。
使用 ssh 公钥免密登录 git 服务器 # 1、本地生成公钥和私钥 ssh-keygen -t rsa# 2、复制公钥内容到远端 git 服务器# 本地拷贝本地公钥 id_rsa.pubcat ~/.ssh/id_rsa.pub# 远端复制到 git 服务器的 authorized_keysvim .ssh/authorized_keys# 3、远端仓库克隆到本地git clone git仓库路径
基本操作
# 1、暂存工作区 - 暂存区
git add 文件名
# 2、提交暂存区 - 本地仓库提交到仓库的文件才真正被 git 追踪记录
git commit -m 提交信息
-a 把当前暂存区里所有的修改包括删除操作都提交未添加到暂存区的内容是不提交
# 3、推送本地仓库 - 远端仓库
git push origin master
# 拉取合并
git pull origin master
# 查看状态
git status# 对比文件差异
git diff commitID
# 查看日志显示每次提交的相关信息包括 commitID、提交作者、提交日期、备注信息
git log [option]
git log --all 显示所有分支
git log --prettyoneline 将提交信息显示为一行
git log --abbrev-commit 使得输出的commitId更简短
git log --graph 以图的形式显示# 忽略文件
# 目录下创建.gitignore文件添加文件至忽略列表
版本回退
从工作区回退工作区 - null清空工作区的的修改 # 从本地仓库或暂存区中检出文件并且覆盖工作目录的内容
# 也就是说放弃本地的所有修改但是工作区新创建的文件不会被删除
git checkout 从暂存区回退暂存区 - 工作区 git resore -S
从本地仓库回退 # 使用该 commit 做回滚操作
git reset commitId / HEAD^
# 1、本地仓库 - 暂存区暂存区和工作区都不会被改变
git reset --soft commitId / HEAD^
# 2、本地仓库 - 工作区暂存区同步到指定的commit工作区不改变
git reset --mixed commitId / HEAD^
# 3、本地仓库 - null修改的内容被清除暂存区和工作区都同步到指定的提交
git reset --hard commitId / HEAD^
从远端仓库回退 git revert commitIdfix conflictgit commitgit push
本地仓库整理
注意修改某个结点导致从该结点往后的所有结点的 commitId 发生变化会引起其他人冲突要确保没有人基于你的分支开发。
整理上一次的提交 git commit -amend 整理多次提交本地 commit 直接使用 git rebase -i 。 push 到远端的 commit 需要使用 git log 查看 commit id来确定要修改的区间范围。 git rebase -i commitId
当你执行 git rebase -i commit 命令时Git 会打开一个文本编辑器列出从 commit 到当前 HEAD 的所有 commit。每个 commit 的前面都有一个命令用于告诉 Git 对这个 commit 进行什么操作。你可以修改这个命令来改变 Git 对这个 commit 的操作。
可用的命令包括
- p 或 pick使用这个 commit- r 或 reword使用这个 commit但需要修改 commit 信息- e 或 edit使用这个 commit但会停下来让你修改这个 commit你可以修改文件内容添加或删除文件等等- s 或 squash使用这个 commit但会将这个 commit 和前一个 commit 合并在一起- f 或 fixup和 squash 类似但会丢弃这个 commit 的 commit 信息- d 或 drop不使用这个 commit
在编辑器中修改命令后保存并关闭编辑器Git 就会开始执行 rebase按照你指定的命令对 commit 进行操作。在 rebase 过程中Git 可能会停下来让你解决合并冲突或者让你修改 commit。你可以按照 Git 的提示进行操作然后继续 rebase。
分支命令
# 查看分支
git branch
# 创建分支
git branch 分支名
# 创建并切换分支
git checkout -b 分支名
# 切换分支
git checkout 分支名
git switch 分支名
# 删除分支不能删除当前分支只能删除其他分支
git branch -d b1
# 合并分支
git merge
git rebase
合并分支
参考图解 Git 基本命令 merge 和 rebase
HEAD 指向当前所在的分支当分支切换时HEAD 会跟着切换到对应分支。
解决冲突
冲突的产生原因不同分支修改了同一文件的同一行或者相邻行。
解决
合并分支: git merge / git rebase合并前先 git pull 更新代码git addgit commitgit push