git的超实用命令 、vscode快捷键汇总

long long ago,记不住这些写了些笔记,偶然翻出了,分享一下

mac 清除dns缓存

sudo dscacheutil -flushcache


git常用操作

查看git提交的tree图

git log --graph --pretty=oneline --abbrev-commit

git log --oneline --graph --decorate --all


git分支挑选某些提交

从a 分支只选择x——y之间的提交 提交到 B分支

在B分支上操作:

git cherry-pick x-hash^..y-hash

注意 ^ :包含x那次的提交。不加则不包含


git创建本地和远程分支

git push origin //远程名:本地名

git remote update origin --prune //更新远程分支列表

git fetch --all //本地更新所有远程分支代码


本地git仓库关联GitHub仓库

git remote add origin git@github.comxxx.git


git本地新建分支,并推送到远程

git checkout -b test //本地新建一个分支

git push origin test :test远程名


git版本回退(慎用)

git reset --hard 版本号 (回退到指定版本,代码也回退到指定版本)

git reset --soft 版本号 (提交记录回退,代码不回退)

下面这个如果提交到远程: 确认没人在这段时间拉取过本分支代码,否则会出问题

git push origin --force (强制推送)


merge合并到master分支

需要合并的分支test是最新代码

切换到master分支: git merge test


删除分支

git push origin --delete // 删除远程

git branch -D test // 删除本地


从已有分支新建分支

如: 基于master拉一个dev分支

1.切换到被copy的分支(master),从服务器拉取最新版本

git checkout master
git pull

2.从当前分支copy出新的开发分支 命名dev分支

git checkout -b dev

3.把新建的分支push到远端 :

git push origin dev

4.从新建的分支拉代码,提示没有关联,解决:

git branch --set-upstream-to=origin/dev


基于远程分支"master",创建一个叫"dev"的分支。

git checkout -b dev master


merge 代码

mydev 合并到master 在mydev 分支,将当前分支合并到master分支 : git merge master

把A分支代码。rebase到master上。 在A上 ,rebase master:

master 的代码应该在下面

A: 111
mater: 222


commit时注释有误修改(未push情况)

git commit --amend


解决当前一直处于变基中的状态

如果想要放弃当前rebase操作,用 git rebase --abort

如果冲突已经解决,先add冲突文件,之后 git rebase --continue


Git rebase使用:

1. git checkout d1 (直接切换到当前需要变基的分支)

2. git rebase master

如果有冲突:

(1) 解决完冲突,使用: git rebase --continue

(2) 执行continue ,提示: Applying: Fix xxx issue No changes - did you
forget to use ‘git add’?

原因;可能这个补丁已经被合并过了,可以省略掉这个commit,运行: git rebase --skip

如果需要取消rebase操作 : git rebase --abort

git push origin --delete mybranch rebase完成后删除远程(避免冲突)分支再直接push

(3) 编辑完成后: git push origin mybranch --force


git rebase介绍

rebase简介

mybranch 。 是基于master的拉取的分支.

变基前,master的分支在mybranch拉取代码后又有了新的提交,这个时候,想把master上新的提交放到mybranch上.此时使用rebase,相当于我的分支是基于新的master,即之前master上的新的提交也被合并到mybranch.

变基前master 的节点在d2 , 我在d1,两平行,变基后,
我的分支, 当前节点在d1,他的上一个节点是d2
即原来: d2(master), d1
现在: d2—>d1(master)


stash 常用

不想提交本次的修改,但需要切分支时可以使用 git stash

git stash save ’ xxxx’’

git stash list // 查看当前暂存列表

git stash pop stash@{1} // 取出暂存列表中为stash@{1} 这个序号的暂存内容

git stash drap -q stash@{1} //从列表中删除某序号的暂存内容

git stash clear // 删除所有的暂存


*分割线-------vscode 常用


设置命令行打开vscode编辑代码

打开vscode —> coommand+shift+p ——> 输入shell command ——> 选择Shell Command: Install ‘code’ command in PATH即可在终端使用code .


vscode 快捷键

com+ shift+k 快速删除一行

shift+op(alt)+下键 复制当前行

ctrl+空格 输入法

com+ctrl+f 退出全屏

comm+ tab或者` 。 切换app

com + m 最小化app

comm+ 空格 聚焦,全局查找

comm+shif+. 显示隐藏文件

comm+op+D 现实隐藏工具栏

ctrl + ⬆️ 查看所有打开的窗口


nvm 管理node版本 (mac)

使用nvm 安装node:

1.官网上下载nvm 安装包:

https://github.com/coreybutler/nvm-windows/releases 安装

nvm 出现running version xx.x.x.x即成功。

nvm -v 查看当前版本

切换node版本:

nvm list 查看当前已安装的所有node可用版本。

nvm use 版本 切换版本。

nvm install v10.22.0 直接安装所需版本


gulp

gulp 常用命令

gulp.task(name[, deps], fn) 定义任务  name:任务名称 deps:依赖任务名称 fn:回调函数

gulp.run(tasks...):尽可能多的并行运行多个task

gulp.watch(glob, fn):当glob(文件路径,可匹配)内容发生改变时,执行fn

gulp.src(glob):置需要处理的文件的路径,可以是多个文件以数组的形式,也可以是正则

gulp.dest(path[, options]):设置生成文件的路径

安装gulp

安装好node npm
sudo npm install -g gulp
npm install gulp --save-dev //安装gulp包
gulp -v 查看版本 // CLI 和本地版本都提示则显示成功

注: -save 自动添加版本号到dependencies
-save-dev 自动添加到devdependencies部分

Github的.gitignore忽略文件

最好在新建项目的时候建.gitignore。

如果中途更新了.gitignore文件,没生效的原因是因为:.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。解决办法如下:

git rm -r --cached .
git add .
git commit -m ‘update .gitignore’

或者只添加了某一个,git rm --cached < file name >


git 一个同一电脑上两个不同的git账号(公司的gitlab和自己的github)

https://zhuanlan.zhihu.com/p/62071906

前提:已经配置过了一个Git账号,即公司的.现在需要额外的增加自己的账号
环境: Mac
思路:生成两对公私钥,push时区分两个账户,推送到对应的仓库

  1. 生成新的公钥,并重命名,以便区分,否则会直接覆盖的:
    ssh-keygen -t rsa -f ~/.ssh/id_rsa_hp -C “hpx’x’x@163.com”

在这里插入图片描述
2. 查看已有密钥:ls ~/.ssh, 如下,有两对则正确:

3.打开config文件(若无则新建一个),配置git各自的host相关信息
这是我的配置信息:

默认公司的

Host jmhost #host 可以自定义
HostName 123.59.198.211 #hostname是主机的域名或者ip
Port 10022 #服务器open-ssh端口,默认22,无特别要求的话可不写
User root #如果公司没要求的话,可随便起
IdentityFile ~/.ssh/id_rsa # 对应生成的秘钥的位置,这里必须是公司的那个,不能混

自己的

Host myhost
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_hp

注:HostName 怎么去找呢?
举个例子,拿个人的GitHub账号来说,在你仓库里随便点进一个项目,点击clone->ssh->git@ 和: 之间的部分,就是你要找的域名或者主机名啦(有些项目公司会设置成1x.X.X.X这种)

4.将生成的公钥,即,以.pub结尾的文件放到对应的git账号下的sshkey中,点击头像——>settings——>ssh 然后添加。注意一定不能放错哦。

5.测试ssh是否能够连接成功
ssh git@公司主机XX ,在本例中就是config中的公司的HostName ,
ssh git@github.com

一般在公司用公司的git比较多,所以可以把公司的
邮箱设置为全局的。如果不设置的话,每次第一次操作和远程相关的都会让关联
git config --global user.name “yourname”,
git config --global user.email "email@email.com "
然后在个人的项目中单独去设置邮箱,这个不能加–global


本地代码提交到远程个人仓库:
远程新建仓库,复制对应对的ssh地址

本地clone 复制下来的ssh地址

git init 初始化仓库

github上传项目的时候报出git@github.com: Permission denied (publickey). fatal: Could not read from remote repo

本机前提:sshkey 已经生成并且正确添加到远程了。否则重新生成并添加。

GitHub仓库初始化时候带了Readme或其他文件,推送之前需要先git pull 拉下来,否则报 branch master -> FETCH_HEAD fatal: 拒绝合并无关的历史的错。
git pull origin master --allow-unrelated-histories

当配置完成后,(本地连接了两个账号),新建项目想上传到git则需要:
git remote add origin git@github.com:cxhp/web-Music-demo.git (远程仓库的地址)
git remote -v 如果显示是刚刚添加的地址,则正确,按照正常的git提交流程走就ok了

据说: (存疑,反正我没用这个也是正常提交了的)新分支第一次提交,需要使用 git push –set-upstream “your repository” “your branch”

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值