2021-07-04
2021/7/5 6:22:58
本文主要是介绍2021-07-04,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
GIT开发手册
- GIT开发手册(2021 06 30)
- 一、简介
- 二、 特点
- 三、 安装与配置
- 四、 快速使用
- <了解基础操作>
- 1. 调出控制台界面
- 2. 创建本地仓库
- <了解工作流>
- 1. 添加新文件到本地仓库
- 2. 从本地仓库删除文件
- 3. 在本地仓库修改文件
- 4. 移动或重命名工作区文件
- 5. 检测当前文件的状态
- 6. 查看提交日志
- 7. 查看操作日志
- 8. 本地仓库回退
- <了解分支>
- 1. 查看当前分支
- 2. 新建分支
- 3. 重命名分支
- 4. 切换分支
- 5. 合并分支
- 6. 删除分支
- 7. 查看每一个分支的最后一次提交
- <了解远程仓库>
- 0. 获取远程仓库的url
- 1. 检出仓库(下载远程仓库)
- 2. 设置远程仓库
- 3. 查看远程仓库
- 4. 修改远程仓库名
- 5. 删除远程仓库
- 6. 更新本地仓库(从远程仓库获取更新)
- 7. 推送远程仓库(将本地仓库推送到远程)
- 8. 远程仓库回退
- <了解IDEA>
- 配置GIT
- 在IDEA中使用git命令
- 新建git项目
- 检出项目(克隆)
- 添加到缓存区(git add)
- 提交到HEAD区(git commit)
- 添加分支
- 获取远程更新(git pull)
- 推送到远程仓库 (git push)
- <实用技巧>
- 记住gitee账号密码
- 设置用户名邮箱
- 内建的图形化 git
- 彩色的 git 输出
- 显示历史记录时,每个提交的信息只显示一行:
- 交互式添加文件到暂存区
GIT开发手册(2021 06 30)
一、简介
-
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
-
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
-
Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
二、 特点
- Git 是分布式的,SVN 不是**:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。**
- **Git 把内容按元数据方式存储,而 SVN 是按文件:**所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。
- **Git 分支和 SVN 的分支不同:**分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。
- **Git 没有一个全局的版本号,而 SVN 有:**目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。
- **Git 的内容完整性要优于 SVN:**Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
三、 安装与配置
官网下载安装
四、 快速使用
<了解基础操作>
Git 的工作就是创建和保存你项目的快照及与之后的快照进行对比。
本章将对有关创建与提交你的项目快照的命令作介绍。
Git 常用的是以下 6 个命令:git clone、git push、git add 、git commit、git checkout、git pull,后面我们会详细介绍。
说明:
- workspace:工作区
- staging area:暂存区/缓存区
- local repository:版本库或本地仓库
- remote repository:远程仓库
1. 调出控制台界面
第一种方式:
在随意一个文件夹中右键>Git Bash here
注意:需要有右键菜单的支持
第二种方式:
在安装目录下点击 git-bash.exe 启动
2. 创建本地仓库
第一种方式:
新建一个文件夹,然后在文件夹内,调出控制台页面输入
git init
会发现多出一个.git的文件夹
注意:需要打开隐藏文件夹的显示
第二种方式:
使用我们指定目录作为Git仓库。
git init 目录路径名
<了解工作流>
你的本地仓库由 git 维护的三棵“树”组成。第一个是你的 工作目录
,它持有实际文件;第二个是 暂存区(Index)
,它像个缓存区域,临时保存你的改动;最后是 HEAD
,它指向你最后一次提交的结果。
- **工作区:**就是你在电脑里能看到的目录。
- **暂存区:**英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
- **版本库:**工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rPEaoYk2-1625412533599)(ipic/1352126739_7909.jpg)]
- 图中左侧为工作区,右侧为版本库。在版本库中标记为 “index” 的区域是暂存区(stage/index),标记为 “master” 的是 master 分支所代表的目录树。
- 图中我们可以看出此时 “HEAD” 实际是指向 master 分支的一个"游标"。所以图示的命令中出现 HEAD 的地方可以用 master 来替换。
- 图中的 objects 标识的区域为 Git 的对象库,实际位于 “.git/objects” 目录下,里面包含了创建的各种对象及内容。
- 当对工作区修改(或新增)的文件执行 git add 命令时,暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中。
- 当执行提交操作(git commit)时,暂存区的目录树写到版本库(对象库)中,master 分支会做相应的更新。即 master 指向的目录树就是提交时暂存区的目录树。
- 当执行 git reset HEAD 命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。
- 当执行 **git rm --cached ** 命令时,会直接从暂存区删除文件,工作区则不做出改变。
- 当执行 git checkout . 或者 **git checkout – ** 命令时,会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区中的改动。
- 当执行 git checkout HEAD . 或者 **git checkout HEAD ** 命令时,会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。
1. 添加新文件到本地仓库
第一步
在本地仓库创建新文件(工作区新建文件)
touch 文件名
或者直接在文件夹中进行新建文件操作
第二步
使用add命令将文件添加到缓冲区(工作区添加到缓冲区)
单个文件添加方式: git add 文件名 将工作区内的所有文件进行添加 git add *
第三步
使用commit命令将缓冲区的文件最终提交到本地仓库(缓冲区提交到HEAD区)
git commit -m "提交信息"
注意:如果您不使用-m,会出现编辑器来让你写自己的注释信息。
2. 从本地仓库删除文件
第一步
使用git命令进行删除
git rm <文件名>
注意:如果使用的是git命令,则已经在缓冲区中不用进行add添加
注意:如果删除的是文件夹则添加-r
第二步
将删除提交到HEAD区
git commit -m "提交信息"
3. 在本地仓库修改文件
在window进行编辑修改文件
add 和 commit
4. 移动或重命名工作区文件
git mv [file] [newfile]
5. 检测当前文件的状态
查看当前文件的状态,是否在工作区或缓冲区还是已经提交(经常使用)
git status
注意:红色表示在工作区中未被提交的到暂存区
绿色表示在暂存区中未被提交到HEAD区
注意:需要开启彩色的git输出(默认已经打开无需在意)
6. 查看提交日志
git log
注意:可以查看历史的版本记录
注意: 如果嫌弃输出的信息杂乱无章,那么加上 --pretty=oneline 参数试试吧!
7. 查看操作日志
git reflog
定义:查看命令操作的历史
8. 本地仓库回退
1、restore 重置
如果你修改了代码,但是并未执行 git add 操作,可直接执行:
git restore . . 表示所有文件,如果想重置个别文件,指定文件路径即可 git restore <文件>...
注意:如果你已经执行了 git add 操作,此时代码已保存至暂存区,需要先取消暂存区变更:
git restore --staged .
或者
git reset . 采用当前的版本仓库对暂存区进行覆盖
然后,再执行 git pull 拉取远程代码同步即可。
2、reset 回退
reset 比较暴力,相当于 可适用于 代码在工作区、暂存区、仓库区等任何场景
git fetch --all git reset --hard origin/master git pull // 这一步为了同步远程代码,不需要的话可不执行
git fetch 指令是下载远程仓库最新内容,不做合并。
git reset 指令把HEAD指向master最新版本。
reset --hard:重置后不保留暂存区和工作区
reset --soft:保留工作区,并把重置 HEAD 所带来的新的差异放进暂存区(此时代码的变更状态相当于执行完 git add命令)
reset --mixed:reset的默认参数,保留工作目录,并重置暂存区(此时代码的变更状态相当于执行 git add命令之前)
或者
获取版本ID
git log --pretty=oneline
回退到指定ID
git reset --hard id
如果需要操作失误,则获取操作ID
git reflog
查找到你要的 操作id,使用上文说的 git reset --hard id。又回退到当初一模一样的版本
3、stash 暂存(推荐)
我比较喜欢的方法,是用stash,暂存代码再同步。
首先,将所有代码添加至暂存区:
git add .
然后,将代码临时保存:
git stash
此时代码会重置到修改前的状态,可以同步远程仓库区,完事儿。
git pull
同步后,如果还想继续修改原来的代码,可将临时代码恢复至工作区:
git stash pop
查看储藏起来的状态
git stash list
可以用来应用储藏的状态。比如 git stash apply 0 就会应用储藏id为0 的中间状态。
git stash apply id
<了解分支>
分支是用来将特性开发绝缘开来的。在你创建仓库的时候,master 是“默认的”分支。在其他分支上进行开发,完成后再将它们合并到主分支上。
1. 查看当前分支
git branch
注意: 新建的分支虽然是默认master,但如果里面没有文件的话是不会被显示的。
注意:查看分支,有星号它代表现在检出的那一个分支
2. 新建分支
git branch 分支名
注意:新建分支内容为空
注意:master分支是默认创建的,不用重复创建
3. 重命名分支
git branch -m 原分支名 新分支名
4. 切换分支
git checkout 分支名
注意:不同分支间内容是不互通的,需要切换进行操作
5. 合并分支
首先到你想要合并到的分支
git checkout master
然后命令你想要被合并的分支
git merge <被合并分支名>
注意:如果合并出现冲突,这时候就需要你修改这些文件来手动合并这些冲突(conflicts)。改完之后,你需要执行如下命令以将它们标记为合并成功:
git add <文件名>
在合并改动之前,你可以使用如下命令预览差异:
git diff <source_branch> <target_branch>
6. 删除分支
git branch -d 分支名
注意:删除时需要切换到另外一个分支才能删除本分支
7. 查看每一个分支的最后一次提交
git branch -v
<了解远程仓库>
Git 并不像 SVN 那样有个中心服务器。
目前我们使用到的 Git 命令都是在本地执行,如果你想通过 Git 分享你的代码或者与其他开发人员合作。 你就需要将数据放到一台其他开发人员能够连接的服务器上。
0. 获取远程仓库的url
1. 检出仓库(下载远程仓库)
git clone 远程仓库的url
2. 设置远程仓库
git remote add 别名通用为origin 远程仓库url
注意:如果使用过检出仓库,则会默认设置一个origin并且url为你检出仓库的地址
3. 查看远程仓库
git remote -v
4. 修改远程仓库名
git remote rename 原仓库名 新仓库名
5. 删除远程仓库
git remote rm 仓库名
6. 更新本地仓库(从远程仓库获取更新)
将远程主机 origin 的 master 分支拉取过来,与本地的 brantest 分支合并。
git pull origin master:brantest
注意: 如果远程分支是与当前分支合并,则冒号后面的部分可以省略。
注意:pull默认是获取master分支,如果想要获取远程仓库的所有分支则需要(前提需要pull过仓库)
git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
注意:如果本地仓库不是通过检出仓库创建,并且其中有自己设置的内容,提示fatal: refusing to merge unrelated histories,则需要
git pull origin master --allow-unrelated-histories
或者
git pull --rebase origin master
7. 推送远程仓库(将本地仓库推送到远程)
git push -u 远程仓库 远程分支名
8. 远程仓库回退
使用网站操作
<了解IDEA>
配置GIT
在IDEA中使用git命令
新建git项目
第一步
正常建立一个项目
第二步
将这个项目设置为本地仓库
检出项目(克隆)
添加到缓存区(git add)
提交到HEAD区(git commit)
注意:要写注释
注意:如果有报错则跳过即可
添加分支
获取远程更新(git pull)
推送到远程仓库 (git push)
<实用技巧>
记住gitee账号密码
打开工作空间,右键,选择 git bash ,在打开的窗口中执行命令:
git config --global credential.helper store
去重新下载,第一次输入帐号密码,之后再下载就不会出现了
设置用户名邮箱
git config --global user.name "John Doe" git config --global user.email johndoe@example.com
内建的图形化 git
gitk
彩色的 git 输出
git config color.ui true
显示历史记录时,每个提交的信息只显示一行:
git config format.pretty oneline
交互式添加文件到暂存区
git add -i
这篇关于2021-07-04的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南