网站多语言模块,中山建网站咨询电话,上传设计作品集的网站,简单学校网站模板免费下载文章目录 安装gitgit学习网站git初始配置具体配置信息 新建版本库#xff08;仓库#xff09;git的工作区域和文件状态工作区域文件状态git文件提交的基础指令 git基础指令1. 版本提交2. 分支创建3. 分支切换4. 分支合并(1) git merge(2) git rebase 5. 在git的提交树上移动(… 文章目录 安装gitgit学习网站git初始配置具体配置信息 新建版本库仓库git的工作区域和文件状态工作区域文件状态git文件提交的基础指令 git基础指令1. 版本提交2. 分支创建3. 分支切换4. 分支合并(1) git merge(2) git rebase 5. 在git的提交树上移动(1) HEAD(2) 分离的HEAD(3) 相对引用(4) 强制修改分支位置(5) 撤销变更 6. 整理提交记录7. 交互式rebase8. 设定里程碑9. 添加标签 绑定远程仓库克隆远程仓库同步远程仓库使用远程仓库覆盖本地仓库 安装git
WindowsGit安装 LinuxUbuntu:
sudo apt install gitgit学习网站
Git教程
git初始配置
git config --global user.name Jasper Yang保存用户名和密码就不用每次重复输入
git config --global credential.helper store查看git的配置信息
git config --global --list具体配置信息
省略Local本地配置只对本地仓库有效–global全局配置对所有仓库有效–system系统配置对所有用户生效
usr.name就是说配置的是用户名。 当需要配置邮箱则改一点就行
git config --global user.email geekhall.cngmail.com后面的就是邮箱地址。
新建版本库仓库
创建仓库git init上面的方法是本地创建仓库我们也能使用git clone来克隆一个本就存在的仓库。
git的工作区域和文件状态
工作区域
工作区.git所在的目录也就是电脑上的本地文件暂存区.it/index用于保存即将提交到Git仓库的修改内容本地仓库.git/objects通过git init创建的仓库
文件状态
未跟踪untrack未修改Unmodified已修改Modified已暂存Staged
上图中展示了各种指令的作用因为这里也就不再赘述了。
git文件提交的基础指令
git status # 查看仓库的状态
git add # 添加到暂存区
git rm --cached # 将已经添加到暂存区的文件取出
git commit (-m) # 提交# -m用于指定文件的备注信息等# 这个信息会被提交
git log # 查看提交的日志信息
git reset # 用于回退版本git基础指令
1. 版本提交
git commit该命令用于在当前所处的分支上提交新版本。 但是git不会盲目得将所有的内容全部重新提交它会与上一个版本进行比较如果有更新就会在其基础上进行更新。
2. 分支创建
git branch name该命令用于创建一个分支该分支的根节点是创建分支时所处的根节点。
3. 分支切换
git checkout name先前我们已经使用了git branch对分支进行了创建现在我们就可以使用git checkout进行分支切换了因为git commit等操作是对当前分支进行操作。
4. 分支合并
(1) git merge
git merge这里用图来理解下 现在有两个分支main和bugFix现在我们根据“星号”的位置可知现在我们处于main分支上。 此时我们使用git merge bugFix
(2) git rebase
git rebasegit rebase其实就是取出一系列的提交记录“复制”它们然后在另一个地方逐个放下去。 现在我们处于bugFix分支上bugFix分支是基于C1的修改main所处的C2分支也是基于C1的修改现在使用git rebase main对分支进行合并
需要注意的是C3节点并没有消失。 坦白点说当你在bugFix分支上运行git rebase main命令时实际上是将bugFix分支上的提交记录复制并重新应用到main分支上。这意味着Git会先找到bugFix分支与main分支的最近共同祖先然后将bugFix分支自该祖先以来的提交记录依次复制并在main分支上重新应用。这样可以使得bugFix分支的提交历史与main分支保持在一条直线上同时整合bugFix分支的改动到main分支上。 所以我理解这个语句为将根节点重新设定为main所指向的节点。
5. 在git的提交树上移动
(1) HEAD
HEAD是当先所在分支的符号引用——也就是指向你正在其基础上进行工作的提交记录。 HEAD总是指向当前分支上的最后一次提交记录。 HEAD在通常情况下是指向分支名的。
(2) 分离的HEAD
分离的HEAD指向了某个具体的提交记录而不是分支名。 在教程中使用的checkout进行切换切换的目标是对应节点的哈希值。 节点的哈希值我们能够使用git log进行查看
git log(3) 相对引用
git中我们能通过相对引用从一个易于记忆的节点或者HEAD进行计算
^向上移动一个提交记录~num向上移动num个提交记录例如~3
这里给出两个示例
HEAD^^
main~3(4) 强制修改分支位置
git branch -f main HEAD~3上面的命令会将main分支强制指向HEAD的第3级parent提交。
(5) 撤销变更
Git中撤销变更的方式很多主要的命令有两个git reset和git revert这两个是有区别的。 reset在本地好用就是版本回退但是如果是在分布式协作的时候就需要使用revert了它不是直接回退而是将更新一个版本这个版本与需要回退的版本一样。
git reset
git revert需要配合参数使用表示需要回退多少个版本
git reset HEAD~16. 整理提交记录
git cherry-pick该指令用于将节点复制到目前分支上。 这跟之前的rebase有点类似。 cherry-pick适用于知道节点hash值的情况。
7. 交互式rebase
交互式rebase其实就是rebase使用参数-interactive缩写为-i其余与之前rebase的一样。
git rebase -i main~4它会将main~4的一系列指令进行一个复制操作然后它会弹出一个UI对话框其中可以选择拖拽更换节点位置或者使用pick对节点进行一个“删除”这样它不会对该节点进行复制。
8. 设定里程碑
里程碑将固定指向某个节点因此也叫做里程碑。
git tag version1 C1这会将节点C1命名为version1那么现在version1就表示C1。
9. 添加标签
这个标签就是对该节点的描述
git describe ref其中ref可以是任意可以表示该节点的方法不管是tag、hash值和HEAD都行。 使用后会有一个输出格式如下
tag_numCommits_ghashtag离ref最近的标签numCommitsref和tag相距多少个commithash给定的ref的hash值若是ref有标签则输出标签
绑定远程仓库
我们可以使用clone指令和remote指令绑定远程仓库例如在Github和Gitee创建的。
git clone urlgit remote url这两个指令相对来说比较复杂建议看看官方的git教程。
克隆远程仓库
我们常常把代码托管在远程仓库当我们想要拉取自己或者别人的远程仓库的时候我们通常会使用clone指令
git clone url这样就能将仓库中的所有文件全部完整的拉取下来包括原本的分支情况和标签等等信息。 这些信息都会存储在该文件夹的**.git**中。
同步远程仓库
当本地仓库的内容发生了修改我们想要将修改后的内容推送到远程仓库中这时候我们就需要将我们已经修改好的内容进行一个推送push因为是将本地已经修改好的内容推送理所应当的是这个被修改了的文件在本地应该处于commit状态然后我们就能使用git push进行同步了。
git push [-option]使用远程仓库覆盖本地仓库
首先此时我们先要确定本地仓库已经和远程仓库连接了
git remote -x使用这个指令可以看到远程仓库源。 然后将远程仓库的内容拉取到本地
git fetch origin但是这样拉取到本地的内容不会自动合并于是我们需要合并代码
首先切换到想要进行覆盖的远程分支git checkout remote-branch-name这样工作区就被切换到需要进行覆盖的远程分支了。对本地仓库进行重设git reset --hard origin/remote-branch-name然后将本地进行覆盖后的内容推送到远程仓库git push origin remote-branch-name --force这段代码会会强制推送本地仓库内容到远程仓库覆盖远程分支。