IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 4. Git分支之实战入门 -> 正文阅读

[开发工具]4. Git分支之实战入门

git快速入门

一个很好的git实践学习入门网站

learngit

总体来说过一遍这个网站就有了基本的框架,然后就可以在实践中边用边学了,学习的原则就是:多用多查多积累。

基本配置

git init

初始化本地仓库

git config --global user.name "XingMing"
git config --global user.email "xxxxx@gmail.com"

配置用户名和邮箱

本地仓库操作

  1.  git add [file]
    

    将文件添加到暂存区。

  2.  git commit -m 'information'
    

    提交到本地仓库

  3. git branch <分支*> 
    

    在当前提交上创建新分支<分支*>

  4. git checkout <分支*>
    git checkout -b <分支*>
    

    切换到<分支*>

    创建并切换到<分支*>

    git checkout 
    git checkout -- <file>
    

    用暂存区(本地仓库)全部或指定的文件替换工作区(当前目录)的文件

  5. git merge <分支*>
    

    将<分支*>合并到当前分支上

  6. git rebase <分支*> 
    git rebase <分支*> <分支>
    

    将当前分支移到<分支*>上

    将<分支>移到<分支*>上

    image-20220314104642055

  7. HEAD指针指向分支指针,分支指针指向最新提交。HEAD->分支指针->最新提交

  8. 相对引用^:HEAD^表示HEAD的上一次提交,git checkout HEAD^表示移动到HEAD所指分支的上一个提交

  9. git branch -f <分支\*> <HEAD~2>
    

    将<分支*>移动到<HEAD>的前两级提交

  10. git reset <HEAD~1> 
    

    将当前分支在本地回退到上一次提交

    image-20220314104802493

  11. git revert <HEAD~1> 
    

    将当前分支在新的提交上回退到上一次提交的状态(即图中C2’=C1,可以push到远程)

    ![image-20220314104827989](https://img-blog.csdnimg.cn/img_convert/d47311e6b6009955d5cbf48570cf0e6a.png)
    
  12. git cherry-pick <commit1 commit2 commit3 ...> 
    

    将提交1、提交2、提交3移动(复制)到当前提交下

    image-20220314105039394

  13. git rebase -i <HEAD~3> 
    

    用交互式rebase编辑当前分支的前3次提交,可以移动和删除其中的提交记录

  14. git tag <v0> <C1> 
    

    在提交记录C1打上标签v0

  15. git describe <ref>
    

    描述离<ref>(缺省时为HEAD)最近的标签

    输出的结果是这样的:

    <tag>_<numCommits>_g<hash>
    

    tag 表示的是离 ref 最近的标签, numCommits 是表示这个 reftag 相差有多少个提交记录, hash 表示的是你所给定的 ref 所表示的提交记录哈希值的前几位。

密钥配置

在git bash中输入:

ssh-keygen -t rsa -C "email address"

执行命令生成ssh key,选择保存的位置,设置密码(回车默认)

默认会在用户文件夹下创建.ssh文件夹,里面有2个文件id_rsa和id_rsa.pub,其中本机ssh密钥就在id_rsa.pub中。

随后在github或者gitee中的设置里面把上面的id_rsa.pub中的内容添加到SSH就行。

远程仓库操作

  1. git clone
    

    将远程仓库克隆到本地

  2. git fetch
    git fetch origin <place>
    git fetch origin <source>:<destination>
    

    将本地仓库中的远程分支更新成了远程仓库相应分支最新的状态,但不会改变本地仓库的状态。它不会更新你的 main 分支,也不会修改你磁盘上的文件。

    第二第三行git指令与下面的push类似,只不过方向相反。

  3. git fetch; git merge o/main
    

    image-20220314105226041

    先将远程仓库的最新内容更新到本地仓库,再合并分支

    image-20220314105211798

  4. git pull
    git pull --rebase
    

    效果等于上面git fetch + git merge,拉取最新状态到本地并合并分支

    如果加上–rebase后缀的话,效果等于git fetch + git rebase,拉取最新状态到本地并将当前分支移到最新的远程分支下

  5. git push
    git push origin <place>
    git push origin <source>:<destination>
    

    将本地推送到远程仓库,若远程仓库状态已更新(多人协作时),则会push失败。通常解决方法是先使用git pull或者git pull --rebase拉取更新本地后再push推送

    <place>可以指定push哪个分支

    <source>:<destination>可以指定本地哪个分支push到远程哪个分支,若目的分支<destination>不存在,则自动创建远程分支。当<source>缺省时,则会删掉远程<destination>分支

  6. Remote Rejected远程服务器拒绝。

    ! [远程服务器拒绝] main -> main (TF402455: 不允许推送(push)这个分支; 你必须使用pull request来更新这个分支.)
    

    通常情况下,我们应在在本地创建一个新的分支,然后再push分支到远程仓库

  7. git checkout -b foo o/main
    git branch -u o/main foo #若当前在foo分支上,可以不用加foo
    

    上面两句都是同样的效果,创建(检出)一个名为foo的新分支并让其跟踪远程仓库的main,在下次pull的时候由foo跟踪远程仓库的main的位置,使用foo分支commit后在下次push的时候同样会更新远程仓库的main的位置

名词解释

  1. origin
    

    远程仓库链接的别名。origin等价于https://github.com/user1/repository.git

  2. fork
    

    将当前(别人的远程仓库)复制一份到自己的github账户上,成为自己的远程仓库

    20150914111018053

    后续可以进行clone和push

  3. pull request
    

    在fork别人的项目并做了修改完善后,可以对原作者发起一个pull request,请求他pull我们更新完后的仓库状态。

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-03-15 22:47:55  更:2022-03-15 22:50:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:40:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码