git操作笔记

tag管理

删除tag

git tag -d tagName
git push origin :refs/tags/tagName

创建tag

以当前commit创建tag

git tag -a tagName -m "my tag"

指定commit 创建tag

git tag -a tagName  fceb03 -m "my tag"

推送tag到远程

git push origin tagName

删除当前仓库所有历史commit记录

1.创建新的分支 (注意参数–orphan)

   git checkout --orphan branch_name

2.添加所有文件

   git add -A

3.提交

   git commit -am "commit message"

4.删除主分支

   git branch -D master

5.重命名当前的分支(branch_name)为master

   git branch -m master

6.强制推送到远程

   git push -f origin master

删除仓库某个文件所有历史commit记录

  • 强制Git处理但不检出每个分支和标签的全部历史记录
  • 删除指定的文件以及所有由此产生的空提交
  • 覆盖现有标签
git filter-branch --force --index-filter \
  "git rm --cached --ignore-unmatch PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA" \
  --prune-empty --tag-name-filter cat -- --all

强制推送

 git push origin --force --all
 git push origin --force --tags

强制取消引用本地存储库中的所有对象并进行垃圾回收

git for-each-ref --format="delete %(refname)" refs/original | git update-ref --stdin
git reflog expire --expire=now --all
git gc --prune=now

fork仓库后同步原仓库最新代码(产生新的合并记录)

1、查看现有的远程仓库:

 git remote -v
origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)

2、添加指向原仓库的upstream:

git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git

3、查看origin和upstream

git remote -v

4、直接从原仓库的master分支拉取代码并直接合并代码,其中pull=fetch+merge.

git pull upstream master

更换远程仓库地址

git remote set-url origin  REPO_URL

fork仓库后同步原仓库最新代码,合并本地commit(不产生合并记录)

这里fork后的仓库地址 https://github.com/itling/libp2p-rs.git
原仓库地址 https://github.com/netwarps/libp2p-rs.git
现在我要把fork后的仓库swarm_dial_min分支同步,并合并提交记录

git checkout https://github.com/itling/libp2p-rs.git 
cd libp2p-rs
git checkout swarm_dial_min
git remote add upstream  https://github.com/netwarps/libp2p-rs.git 
git remote -v
git fetch upstream
git rebase -i upstream/master

rebase时 第一条我们reword 其余的都fixup
rebase 的时候可能产生冲突 ,解决冲突后git add冲突文件

git rebase --continue

然后可能继续产生冲突,重复上述步骤 ,直接没有冲突

使用git log查看rebase后的结果是否与我们预期的一致

强制推送

git push -f  origin swarm_dial_min
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页