git基本操作

把新修改上传到远程仓库的二级目录

场景如下:之前把多个文件夹同时上传到一个Repo里,后来其中一个文件夹内需要添加新文件a.txt,该如何修改?

  • git remote add origin [远程仓库地址]
  • 如下操作
    • git pull # 将远程项目拉下来
    • cd [项目]
    • git init
    • git add ../a.txt
    • git status //查看新增加的a.txt是否被add
    • git commit -m "a.txt"
    • git merge origin/master
    • git push -u origin master

删除远程文件或文件夹

  • git clone [远程仓库地址]
  • git rm -r [项目名]/[待删除文件夹名] # 如果是文件,则不需要-r
  • git commit -m "delete file"
  • git push origin master

删除本地已经commit的文件夹

本地已经add到远程的文件夹,会存在git fetch/pull拉下来,但本地不存在的情况,原因是存在缓存里了,这里不能使用git rm -r,因此:

  • git rm -r --cached dirname
    然后同上。

本地上传文件,且删除远程文件

  • git init
  • git remote add origin master [路径]
  • git fetch # 拉下远程
  • git merge origin/master # 将远程与本地合并,更新本地
  • git rm -r remote_folder
  • git add folder
  • git commit -m "add a folder, delete a remote_folder"
  • git push

删除已经add了的文件

  • git rm -r --cached .

git rebase

  • git rebase -i [head you want to back]
  • pick the head, squash other
  • git push -f
  • git rebase --abort 放弃rebase

今天做git rebase时发现,fixup 和 squash均能实现“将本次commit结果合并到前一次中”,而区别在于:

  • fixup直接抹掉了commit
  • squash则将commit合并到一个“pick”的commit里,点击该pick的commit可展开看到。

git branch dev

git checkout dev

合并成一句话: git checkout branch dev

切换远程分支

现在需求如下:我想直接把本地代码从远程分支test更新到远程分支develop:

  • git checkout -b develop origin/develop
    该过程包含在本地新建分支develop,并将代码更新为远程develop

删除分支:git branch -d dev

将远程分支1强制更新到远程分支2的某一个版本T(非最新)

思路是新建一个tmp分支,将ver2的某个版本回退到T,然后将ver1强制更新到T

  • git checkout ver2
  • git reset --hard [你想回到的版本]
  • git checkout -b tmp
  • git checkout ver2
  • git push origin ver2:tmp
  • git checkout tmp
  • git pull origin tmp:tmp
  • git push -f origin tmp:ver1 //此时已push到ver1的远程
  • git checkout ver1
  • git pull

转载于:https://www.cnblogs.com/ringo/p/6260507.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值