Git | 基础学习笔记

如果想修改某个历史tag对应的commit代码,则可以:

git checkout 0.0.1 (HEAD游离在这个提交上);
修改代码(问题修复);
git add, commit;
git tag 0.0.1.1 (问题修复后制定tag);
git push origin 0.0.1.1(推送当前tag到远端);
git switch master(切换到主分支)
git merge master(合并HEAD到master上);
git push(推送合并到远端);

基础使用

init

add xx

commit

log --pretty=oneline

status

配置

  • config --global user.name "Your Name config --global user.email "email@example.com"

  • 文件位置:~/.gitconfig(全局) .git/config(当前仓库)

版本管理

暂存区(staged)

  • restore --staged xx

  • reset HEAD xx

回退 (慎用--hard)

  • reset --hard HEAD^

  • reset --hard 0a32

  • reflog 记录每一次操作命令

删除

  • rm xx

  • git rm xx

恢复

  • restore xx

  • checkout -- xx

远程仓库

添加远程仓库

remote先将本地仓库与远端仓库建立链接 origin指远程仓库的默认名字,你可以改为任意名字。

  • 也可以直接使用 git push git@github.com:BackWorld/GitLearning2.git

推送到远程仓库

  • push -u origin master

-u指将远程的origin/master和本地master分支建立的对应关系,这样以后git push/pull时就不用指定远程仓库/分支;

相当于 git push origin master + git branch --set-upstream-to=origin/master master

  • git show-ref 查看本地仓库与远程仓库的链接关系

  • git remote -v 查看远程仓库refs

  • git remote remove XX 移除仓库ref

克隆远程仓库

  • git clone [LocalDir]

  • git remote -v 查看远程仓库关联信息

远程仓库协作

  • 查看远程库信息,使用git remote -v;

本地新建的分支如果不推送到远程,对其他人就是不可见的;

从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;

在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;

建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;

从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

分支管理

当前分支:HEAD指向的分支

git branch命令列出所有分支,*dev表示当前分支

branch dev: 创建分支

checkout dev: 切换分支 checkout -b dev: 创建+切换

切换分支:switch dev(本地已存在的分支)

创建+切换分支:switch -c dev

合并分支: merge dev(将dev分支合并到当前分支上去)

删除分支

  • 本地分支:branch -d dev

  • 远程分支:push origin -d dev

合并冲突

  • <<<<<< HEAD (当前分支改动)
    xxx
    >>>>>> feature1 (目标分支改动)

查看格式化日志

  • log --graph --pretty=oneline --abbrev-commit

暂存工作区: stash

查看已暂存的工作区: stash list 还原工作区:stash apply(不删除原暂存信息) 还原+删除:stash pop=stash apply+stash drop. 还原指定工作区: git stash apply stash@{0}

复制指定提交到当前分支:cherry-pick 4c805e2

rebase: 把分叉的提交历史“整理”成一条直线,看上去更直观。缺点是本地的分叉提交已经被修改过了。

rebase操作可以把本地未push的分叉提交历史整理成直线;

标签管理

添加

  • tag 1.0 在当前分支最新commit处打tag

  • tag 0.9 ade2d3 在指定的commit号上打tag

  • tag -a 0.8 -m 'version 0.8 released.' 8fa83231595e -a: 指定tag名 -m: 指定tag信息

删除

  • tag -d 0.1

  • push origin :refs/tags/0.1 删除远程对应的tag

推送

  • push origin 0.1

  • dev->master合有冲突,当然是先从master合到dev,解决冲突,再合回去

第三方仓库使用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Git教程 一、Git简介 1.1. Git的诞生1.2.集中式的vs分布式 二、安装Git 三、创建版本库 四、...
    曹渊说创业阅读 1,042评论 0 2
  • git学习笔记 声明 本文是本人学习Git过程中所做的笔记,以便日后查阅,文中多有错漏之处,不建议用作学习材料,文...
    sayonara_yoyo阅读 899评论 0 1
  • 一、常用终端指令 $ pwd用于查看当前目录 $ mkdir learngit 创建一个名为learngit的空目...
    天山雪莲_38324阅读 532评论 0 1
  • ◆◆◆特别声明◆◆◆ 本篇文章系本人学习《廖雪峰Git教程》笔记,主要用作自己复习使用。首先向廖雪峰老师表示感谢,...
    CalvinNing阅读 656评论 0 1
  • 之前参照莫烦的Git教程整理过一遍Git总结,后来使用Git的时候发现还是有很多操作一知半解,所以再次梳理下Git...
    忆江南_1569阅读 616评论 2 0

友情链接更多精彩内容