首页 > 其他分享 >Git

Git

时间:2022-08-20 19:44:06浏览次数:57  
标签:git 仓库 Git master 本地 远程 分支

  • 命令
    • 查看历史命令 git reflog
    • 查看提交历史 git log
    • 查看当前分支状态 git status
    • 查看节点区别 git diff
    • 创建分支 git branch/git checkout -b
    • 切换分支 git checkout [branch-name]
    • 创建节点 git init
      • 设置个人信息标识 git config --global user.name/email
    • 绑定远程库 git remote add [url.git]
    • 将工作区提交到暂存区 git add .
    • 将暂存区提交到本地库 git commit -am "msg"
      • "msg"需符合提交规范
    • 推送本地库到远程库 git push origin master [--force]
    • 拉取远程库到本地库,且合并本地分支 git pull
    • 拉取远程库到本地库,但不合并,作为新分支 git fetch
    • 克隆远程库到工作区 git clone
    • 工作区内容回退 git checkout [file-name] | .
    • 暂存区删除文件 git rm --cache
    • 本地库回退 git reset [commit ID] | [HEAD^^^]
    • 合并分支的三种方式
      • 三方非线性合并,产生菱形路径 git merge
      • 三方线性变基 git rebase,用之前应与协作者商量
      • 合并节点 git cherry-pick [commit ID]
    • 冲突处理
      • 冲突是由于不同分支在同一文件同一行产生了不同提交内容
      • 产生冲突后,先商量好最终留存版本,再commit
    • git fork
    • git patch
  • 使用
    • 不要直接对公共远程仓库clone,应先fork出个人远程仓库,再clone回本地进行作业,最后将修改提交到个人远程仓库,向公共远程仓库提交merge request申请

 

合并历史commit

  • 有时开发过程中提交的commit很多,但实际需要展示的进程节点仅需几个,因此可以将若干commit合并提交,保持提交历史的整洁
    • 使用git log查看历史提交,确定想要合并的区间
    • 使用git rebase -i [commitID]将HEAD指针放到区间的前一个节点
      2.1. 弹出交互式界面,将需要保留的节点前缀保留为pick,将需要合并的节点前缀改为squash(保留该条msg或简写s), 或fixup(舍弃该条msg, 简写f)
      2.2. 继续弹出交互式界面,添加合并后节点的message
    • 使用git log验证效果

同步源仓库到fork仓

  • 开发时常需要将源仓库fork到个人远程仓,然后再clone到本地仓进行开发
  • 但有时fork的分支仓库相比于源仓库存在版本落后情况,需要将其与源仓库最新版本同步
  • 思路:使用本地仓作为第三方中间点,同时建立到fork分支仓库和源仓库的连接,并在本地同步版本差异,然后push到fork分支仓库

步骤:

1. 列出当前为 Fork 配置的远程仓库,一般应只有到fork仓的连接

git remote -v

2. 指定将与 Fork 同步的新远程上游(upstream)仓库

git remote add upstream [源仓库].git

3. 验证为 Fork 指定的新上游仓库,此时本地仓同时与上游仓和fork仓建立连接。

git remote -v

4. 从上游仓库获取最新的分支及其各自的提交,传送到本地,对 master 分支的提交将存储在本地分支 upstream/master 中

git fetch upstream

5. 切换到本地的主分支

git checkout master

6. 将来自 upstream/master 的更改合并到本地 master 分支中。这就实现了与上游仓库的同步,而不会丢失本地的更改。注意此步可能发生冲突。

git merge upstream/master

7. 最后推送到远程fork仓库就完成了

git push origin master

同步远程master分支到本地仓

  • git fetch origin 远程分支:tmp
    //在本地新建一个temp分支,并将远程origin仓库的master分支代码下载到本地temp分支
  • git diff tmp
    //来比较本地代码与刚刚从远程下载下来的代码的区别
  • git merge tmp
    //合并temp分支到本地的master分支
git branch -d tmp
//如果不想保留temp分支 可以用这步删除

标签:git,仓库,Git,master,本地,远程,分支
From: https://www.cnblogs.com/rellik96/p/16593039.html

相关文章

  • git慎用命令
    git中慎用命令如下:1、  rebase,其会改变本地的基线,造成和服务器上基线对不上而导致一些乱七八糟的错误,常见的错误就是本地版本落后于服务器版本,千万不要轻信网上说的什......
  • Git三大分区学习
    转自:https://juejin.cn/post/68449036543115100301.工作区、暂存区、版本库工作区(WorkingDirectory)是直接编辑的地方,直接操作。暂存区(Stage或Index)数据暂时存......
  • github_findpath_v1.0-Github开源项目目录爆破程序
    Github开源项目目录爆破程序​ 写了个小工具,欢迎师傅们提建议​ 某一天回我的母校溜达了一圈,然后用GoogleHack找到了一个后台,用Wappalyzer没识别到CMS,但是看着这东西......
  • worktree的路径的文件夹自己重命名后发现没有git
    whyworktree?假如你当前有个正在开发的feature,而现在反馈有个hoxfix需要紧急处理,但是我当前的feature也没有写完,并且也不想提交,那么你可以:gitstatsh:将当前工作区的......
  • Git在使用过程中遇到的一些问题
    git默认对文件中的大小写不敏感。方案1:通过配置git来达到识别文件大小写的问题。命令如下:gitconfigcore.ignorcecasefalse缺点:每个仓库都需要修改。方案2:1.先删......
  • Git常用指令
    团队中高频使用的指令注册内网用户项目管理员拉进项目获取权限后,gitclone'url'项目到本地创建自己的项目分支gitbranch'分支名'开始编码gitclone默认下载所......
  • 解决无法访问GitHub
    一、获取IP地址可以直接通过网站查询域名github.com的IP地址,无论哪种方法一定得是通过自己本机查到的IP,网上别人查到的IP你不一定有用。https://www.ipaddress.co......
  • TortoiseGit 图标不显示
    TortoiseGit图标不显示谁在和我的TortoiseGit争夺图片,我就删除谁计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayId......
  • gitignore的相关语法
    空行会被忽略匹配是区分大小写的,如:/abc和/Abc含义不同#开头是注释,会被忽略*表示0-n个字符**两个星含义是子目录子子目录等多层匹配?匹配1个字符(......
  • GIt 冲突解决
    1.gitmerge冲突现象andrew@b-d51qlvdl-2310test1%gitmergetestAuto-mergingREADME.en.mdCONFLICT(content):MergeconflictinREADME.en.mdAutomaticmerg......