【git随笔,日常积累】

Git常用基础

branch

  1. 查看所有分支: git branch -a
  2. 切换到分支:git checkout develop
  3. 创建分支并切换到:git checkout -b develop
  4. 创建一个新分支:git checkout --orphan new_branch
    • --orphan 选项用于创建一个没有历史记录的分支
  5. 删除分支:git branch -d develop,注意只是删除本地分支,并不影响远程分支。
  6. 删除仓库内文件 git rm test.py
  7. 将工作目录中的变更(修改、新增、删除等)添加到暂存区(Staging Area)的命令:git add
  8. 提交更新:git commited -m '本次更新的情况说明'

add

  1. git add a.py
  2. git add .

执行add后,还没执行commit时,想要撤销这次add,该怎么办?
git reset HEAD file, 撤销单个文件
git reset HEAD,撤销多个文件

reset

commit

  1. git commit -m "本次提交说明"

stash

  1. git stash
  2. git stash pop

tag

引用别人的一句话,tag的本质就为某一次commit起一个名字,以后通过tag的名字,直接找到这次commit之后的版本。

  1. 查看本地所有tag版本:git tag
  2. 创建新的tag标签:git tag -a v2.1 5e39ad35a98 -m "对于当前tag的描述"
  3. 不加描述创建tag标签:git tag v2.1 5e39ad35a98
  4. 直接以最新一次commit版本创建tag:git tag v2.4
  5. 显示某个tag的详细信息:git show v2.4
  6. 删除某个tag标签:git tag -d v2.4
  7. 将本地所有标签提交到远程仓库: git push origin --tags

新学的知识

  1. 通过git rm删除的文件同样需要被addcommit后才会生效

Q&A

  1. Q:本地刚拉取了远程仓库的最新状态,如何本地文件合并的痕迹?
    A:git log --graph --oneline --all

  2. 我是想看某个文件合并前后的差异?
    例如,如果合并前的 commit 是 abc123,合并后的 commit 是 def456,你可以执行:
    git diff abc123 def456 path/to/your/file.txt
    这里特别说明一下,git pull origin develop执行之后会自动执行commit,此时可以通过git log查看pull之后commit的SHA

  3. Q:如何创建一个新的分支,不依赖于其他分支的历史提交,这个分支的用途是从远程重新拉去最新的分支,重新进行开发
    A: 操作如下

      git checkout --orphan auto_run
      git status
      git rm -r ./
      git commit -m init_commit
      git status
      git rm ./ -r
      git status
      git commit -m init_branch
      git pull brli develop --allow-unrelated-histories
      # git pull brli develop (会出错)
      ```
    
  4. Q: 每次git clone仓库都会克隆所有的分支,下载很慢,能不能只clone我想要的那个分支?
    A:‘git clone -b <分支名> --single-branch <repository_url> ’

  5. Q: 基于本地分支develop 创建一个master 分支,并想将所有的内容同步到远程的master 分支上,使用背景是本地仓库同步到远程新建的仓库:
    A: 假设当前在develop分支上

    	git checkout --orphan master
    	git fetch origin master
    	git pull origin master (如过远程master 与本地master 有冲突文件的话,可以先将本地的存为别名,再执行)
    	(如果上一步中的同名文件还有用的话可以拷贝至从master 上拉下来的同名文件中,然后删除本地这个存别名的文件文件)
    	git add .
    	git commit -m 同步本地master到reposity		
    
  6. A: git fetch的作用是什么? 回答来自文心一言
    Q: git fetch origin master 是一个 Git 命令,用于从远程仓库(在这个例子中是名为 origin 的远程仓库)获取 master 分支的最新更改,但并不将这些更改合并到你的当前分支。具体来说,这个命令做了以下几件事:
    a. 与远程仓库通信:Git 会与名为 origin 的远程仓库建立连接。
    b. 获取数据:Git 会从 origin 仓库的 master 分支获取最新的提交(commit)和对象(如 blob、tree 等)。
    c. 更新本地引用:这些新获取的数据会被存储在本地仓库中,并且本地的 origin/master 引用(或称为“远程跟踪分支”)会被更新以指向 origin 仓库中 master 分支的最新提交。

    注意几点

    • fetch 命令不会改变你当前所在的分支或该分支上的任何内容。它只是获取数据并更新你的本地引用。
    • pull 命令不同,fetch 命令不会自动合并更改。如果你想要合并这些更改,你需要执行额外的命令,如 git merge origin/mastergit rebase origin/master
    • 如果你想要获取远程仓库上所有分支的最新更改,而不是仅仅 master 分支,你可以使用 git fetch origin(不带分支名)。

    这个命令在想要检查远程分支的最新状态但又不想立即合并这些更改到当前分支时非常有用。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值