当前位置:   article > 正文

git命令详解_git查看当前分支

git查看当前分支

一、git是什么?

Git是目前世界上最先进的分布式版本控制系统(没有之一),什么是版本控制?大白话就是可以控制每个人每一次提交,保证代码互不干扰,可进行历史记录查询、回退版本、分支合并,极大的提高了协同开发的效率

二、几大架构?重要

  • 本地缓存
    一般指git clone后的状态,即将代码缓存cache到本地
  • 暂存区
    一般指git add之后的状态,即将代码添加至暂存区
  • 本地仓库
    一般指git commit之后的状态,即将代码提交到本地仓库
  • 远端仓库
    一般指git push之后的状态,即将代码推送到在远端仓库

三、git命令?场景?

1、查看

  1. 查看分支
    查看本地分支git branch
    查看本地分支+最后一条记录git branch -v
    查看本地分支+最后一条记录+索引远端分支关系git branch -vv
    查看远程分支git branch -r
    查看本地+远程分支git branch -a
  2. 查看当前用户配置
    git config --global --list
  3. 查看本地分支索引的远程分支间的关系
    git branch -vv
  4. 查看本地与上一次暂存区的差异
    git status
  5. 查看文件与上一次暂存区的差异。假设文件为test.py
    git diff test.py
  6. 查看本地与远端仓库分支分支映射是否异常
    git remote show origin
  7. 查看本地缓存序列
    git stash list
  8. 查看stash缓存具体内容,数字0代表序列为0的缓存
    git stash show stash@{0}
  9. 查看所在分支历史提交记录
    git log
  10. 查看文件在git中的跟踪状态
    git status -sb
  11. 查看分支来源,假设本地分支为test
    git reflog --date=local | grep test

2、删除

  1. 删除git索引,删除本地文件。假设文件为test.txt
    git rm test.txt
  2. 删除git索引,保留本地文件。假设文件为test.txt
    git rm --cache test.txt
  3. 删除本地分支(常用),假设分支为test
    git branch -d test
  4. 强制删除本地分支,应用场景一般为合并不完全导致push失败,解决方案一般是强制删除未完全合并分支,重新从远端库拉取分支。假设分支为test
    git status -D test
  5. 删除远端分支。假设远端分支为test
    git push --delete origin test
  6. 删除某个缓存cache,数字0代表序列为0的缓存
    git stash drop stash@{0}
  7. 删除所有缓存
    git stash clear
  8. 删除本地未被跟踪的文件;f 代表文件,d 代表文件夹,n 选择性的删除
    git clean -f
  9. 删除本地.idea、.pyc等文件,并将.idea添加至.gitignore文件提交至远程仓
    git rm --cached -r .idea

3、增加

  1. 将远端仓库拉取(映射)到本地。假设项目地址为test
    git clone test
  2. 拉取远端库最新代码至本地
    git pull
  3. 将本地仓库的修改提交到远端仓库
    git push
  4. 将某个文件添加到暂存区。假设文件为test.txt
    git add test.txt
  5. 将当前路径下的所有文件及目录添加到暂存区
    git add .
  6. 新建本地分支(新分支索引模板即当前所在分支)。假设新分支名为test(切记不可与远端分支名重复,否则此操作不再是新建分支,而是拉取远端分支到本地)
    git branch test
  7. 新建远程分支。假设本地/远程分支名都为test。分两步:①新建本地分支 ②推送到远端仓库
    git branch test
    git push origin test:test # 第一个test是本地分支名,第二个是远端分支名
  8. 新增cache缓存,数字0代表新增序列为0的缓存
    git stash save 0
  9. 提交暂存区代码至本地仓库并添加备注信息。假设备注信息为test
    git commit -m test

4、修改

  • 修改本地分支名字。假设当前分支名为oldName,修改后分支名为newName
    git branch -m oldName newName
  • 修改提交到本地仓库的备注信息
    git commit --amend
  • 系统配置修改
# 修改git的远程地址。假设远端映射到本地名为origin
git remote set-url origin http://x.xx.xxx.xxxx:yyyy/zzz.git
  • 1
  • 2

5、回退(HEAD^==commit号)

  1. 将本地修改但未提交到缓存区的文件回退到未修改前的状态。假设文件为test.py
    git restore test.py
  2. 将某个add(添加)到暂存区的文件回退到本地,但本地所做修改依旧存在。假设文件为test.py
    git reset head test.py
  3. 将add(添加)到暂存区的所有文件回退到本地,但本地所做修改依旧存在
    git restore --staged
  4. commit提交回退后所有修改都不保留(慎用)
    git reset --hard HEAD^
  5. commit提交回退到add之前,保留本地修改,一般也用于分支回退(最常用)
    git reset --mixed HEAD^等同于git reset HEAD^
  6. commit提交回退到add之后,commit之前
    git reset --soft HEAD^
  7. 将某个保存在缓存区的修改回退到当前分支,而且所有相关文件都变为未缓存状态。假设缓存序列为0
    git stash apply stash@{0}
  8. 将某个保存在缓存区的修改回退到当前分支,但不修改已add(添加)到暂存区文件的状态。假设缓存序列为0
    git stash apply stash@{0} --index
  9. 将最近的一次缓存区的修改回退到当前分支,相关文件都变为未缓存状态
    git stash pop

6、组合命令

  1. 新建本地分支并切换到新建分支。假设新建分支为test
    git checkout -b test
  2. 添加本地修改至暂存区&提交到本地仓库。假设备注信息为test
    注:本地修改不包含新文件(不在git跟踪范围)
    git commit -am test

7、合并

注:merge合并时,要变更的分支(即当前所处分支)内不应存在未commit的文件,否则会导致这些文件无法恢复到merge前的状态。解决方法是merge之前将其stash到缓存中,merge结束后pop再还原回来

  1. 不同分支合并某次commit提交(无需push,有commit号即可合并)。假设commit号为test001
    git cherry-pick test001
  2. 单个分支将多次提交记录合并成一个提交记录。假设起始合并的commit号的上一个commit号为test001(包尾不包头)
    git rebase -i test001
  3. 将dev分支修改信息合并到master(目前处于master分支中,将会修改master分支内容)
    git merge dev

8、补充

  1. 本地关联远程分支。假设本地分支名为test,远端分支名为ogn_test
    git branch --set-upstream-to=origin/ogn_test test
  2. git reset --merge 退回merge之前
  3. 放弃合并并恢复到合并前的状态。网上有说相同效果如git reset --merge,其实这是老版本的语法,最新的语法合并回退命令如下:
    git merge --abort

9、场景

  1. 删除远端分支test
    ①、先将要删除的远端分支test拉到本地git checkout test
    ②、切换到其它分支以便删除git checkout dev
    ③、执行删除远端分支命令git push --delete origin test,须知,此时只是删除了远端分支,本地分支还存在,只是缺少了上游分支
    ④、输入账号密码确认删除操作
  2. 删除在本地有但在远程库中已经不存在的分支
    ①、查看远端分支情况(是否删除)git remote show origin,输入账号密码确认查看
    ②、更新本地远程仓映射(即保持本地映射与远端仓对应)git remote prune origin
  3. 远端分支更名
    ①、切换到其它分支git checkout dev
    ②、先修改本地分支名字git branch -m test newName
    ③、删除远端旧分支git push --delete origin test
    ④、将新分支推远程仓库git push origin newName
    ⑤、把修改后的本地分支与远程分支关联git branch --set-upstream-to origin/newName
  4. 提交至新的仓库
    ①、添加远程仓库git remote add gitee https://xxxx.com/yyyyyy/zzzz.git
    ②、新仓库分支映射到本地git remote update gitee --prune,若出现errorfailed to push some refs to,可尝试在git地址上配置用户名&密码Ⅰ编辑git文件git config -eⅡ修改git地址为http://host:pwd@xx/yy/zz.git
    ③、查看分支结构git branch -vv
    ④、切换到新仓库gitee下的master分支git checkout master
    ⑤、合并原仓库main分支代码到master分支git merge main --allow-unrelated-histories(–allow-unrelated-histories是解决两仓库不同历史记录冲突的)
    ⑥、修改冲突(一般新仓库需要修改readme,根据项目情况更改)并提交git add .
    ⑦、提交记录git commit -m "迁移代码至新仓库"并上传git push,若push失败,可强制git push -f gitee master,执行强制需明确此风险
  5. 基于当前创建新的分支并提交至远程
    ①、创建本地新分支git branch -b yourbranch
    ②、提交至远程仓git push --set-upstream origin yourbranch

三、结束

以上就是本文全部内容,希望可以给予你们以帮助!

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号