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 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> git简单操作到上手 -> 正文阅读

[开发工具]git简单操作到上手

许多写代码的同学最终终究会有代码管理这个部分,尤其在多设备,代码版本更新,以及多人开发的情况,git就自然而然接触到。当然平常的基于文件以及个人的管理,复杂度低,更新频率低,常用开发设备少的时候,是可以管理得过来的,而git的学习成本还是较高的,有许多命令,有许多教程,还有分支这个概念,搞不好还会因为操作不当导致不知道怎么回退。既然是工具,那就发挥工具的特性,本文希望对于一些主要的操作简单下来,形成一个套路,解决大部分的问题,让我们的精力真正放置于需要解决的问题上来。当然最后一句,其实这个东西我熟悉下来,最重要还是实践,在慢慢实践中,就知道其实没那么困难。

git参考资料

  • 说明
    • 网上还是有很多资料的,但是优质的资料很少(就是那种我看一篇即可,又学习曲线是平缓上升的),这里参考了一些很好的资料,然后作为一个集合他们的地方,对其评价一下,让后来者有个选择的参考。当然后续的一些总结的操作,也是参考他们的基础上编写的。
  • 资料

git主要使用情况

  • 本地仓库维护与远程仓库协作
    • 初始化
    $ git init #初始化仓库
    $ git config --global user.name "Your Name" #设置账户
    $ git config --global user.email "email@excample.com" #设置用户邮箱
    $ ssh-keygen -t rsa -C "youremail@example.com" #生成ssh key(用于github ssh认证)
    $ git remote add origin git@github.com:YourGithubAccount/YourRepository.git
    #在github申请完仓库后使用,等于链接上仓
    $ git remote -v #查询远程连接情况
    $ git remote remove origin #删除origin(这个估计指代本地仓库的名字)与对应的远程仓库的链接
    $ git push -u origin master #用git push命令,实际上是把当前分支master关联到远程
    #(我们第一次推送master分支时,加上了-u参数,
    #Git就会把本地的master分支内容推送的远程新的master分支)
    
    • 更新
      • 补充说明:一般分冲突与不冲突,冲突的话就人为干涉解决,即对应看修改文档两个分支的不一致,看留谁;不冲突,即不同部分存在加减不会影响,该部分基本上不是大变动都不会影响工作使用。
    $ git add {$file_name} #增加,把文件从工作区提交到暂存区
    $ git add . #把当前目录的情况从工作区提交到暂存区
    $ git commit -m "YourMessage" #提交,把文件从暂存区提交到存储区,增加与删除需要提交
    $ git clone git@github.com:xxxx/xxxxx.git#利用ssh下载东西(第一次需要)
    $ git pull #git fetch 与git merge的结合体,直接在远程仓库下拉取下来
    $ git fetch / git fetch origin branchNAME #全部拉取远程仓库/只拉取对应的分支,
    $ git checkout {$branch_name_ptr} #补充,应该在多分支中说明,切换分支时会自动更新工作区
    $ git merge {$branch_name_ptr}#拉取完还要合并,合并时会处理冲突与不冲突事宜完会更新工作区
    $ git push / git push origin {$branch_name_ptr} #当前分支推送远程仓库/推送指定的分支
    
    • 回退
    $ git reset --hard 	{$branch_node} #把版本库还原成对应节点(ID版本)
    $ git push -f {$branch_node} #强行把本地库更新至远程库上
    
  • 远程仓库与远程仓库维护(即多人协作)
    • 这里不太需要太多疑虑,只能说大家的设计都设计得太好了,只说一下我个人的理解:对于可能存在的风险解答一下,比较疑虑的两个问题就是(1)怕同一分支上,别人更新了bug,我怎么知道以及审核并入,(2)还有,同一分支有两条支线(即别人更新了,我继续更新怎么解决);
    • 这上面其实基于四个思想就能协助解决了:(1)是每次修改不是本人或维护者权限都需要开辟新分支然后申请并入,并入时由维护者审核;(2)同一部分的若发生冲突,则亦由维护者选择取舍,通过本地或网页端来审查;(3)借鉴分支的概念,针对不同用途,分支内容的层层提取(即个人->团队->正式分支->测试分支->发布分支),我们只关注此刻与下一步的关系即可,也能保证代码管理的安全性;(4)最后不行认准当前代码如何,不考虑历史关系,克隆下来进行重新创建仓库就好了,以及发生重大失误,则直接回退版本。(工具始终是工具,重要的是人怎么做,能达成目的即可)
  • 异常处理
    $ git checkout -- .  #当前所有文件更新成当前分支储存区的样子
    $ git reset . #当add之后,但没commit,需要清空暂存区时使用
    $ git log #查询日志,可以看节点ID
    $ git log --graph #会有树的样子看看仓库历史的样子
    $ git status #查询工作区、暂存区、存储区之间的不一致
    $ git branch -a #查询有什么分支
    $ git push orgin :<destination> #这个可以同时删除远程仓库与本地仓库的分支
    

奇技淫巧

$ git log --pretty=oneline #查询修改日志(回到过去)
$ git switch dev #切换到dev分支
$ git rebase NAME#把分支添加到对应分支后面
$ git push origin <source>:<destination>
$ git fetch origin <source>:<destination> 
$ git revert #也是恢复但是便于提交
  开发工具 最新文章
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常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-10-16 19:50:43  更:2021-10-16 19:51:38 
 
开发: 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年12日历 -2024/12/23 14:50:54-

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