long long ago,记不住这些写了些笔记,偶然翻出了,分享一下
sudo dscacheutil -flushcache
git log --graph --pretty=oneline --abbrev-commit
git log --oneline --graph --decorate --all
从a 分支只选择x——y之间的提交 提交到 B分支
在B分支上操作:
git cherry-pick x-hash^..y-hash注意 ^ :包含x那次的提交。不加则不包含
git push origin //远程名:本地名
git remote update origin --prune //更新远程分支列表
git fetch --all //本地更新所有远程分支代码
git remote add origin [email protected]
git checkout -b test //本地新建一个分支
git push origin test :test远程名
git reset --hard 版本号 (回退到指定版本,代码也回退到指定版本)
git reset --soft 版本号 (提交记录回退,代码不回退)
下面这个如果提交到远程: 确认没人在这段时间拉取过本分支代码,否则会出问题
git push origin --force (强制推送)
需要合并的分支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
git checkout -b dev master
mydev 合并到master 在mydev 分支,将当前分支合并到master分支 : git merge master
把A分支代码。rebase到master上。 在A上 ,rebase master:
master 的代码应该在下面
A: 111
mater: 222
git commit --amend
如果想要放弃当前rebase操作,用 git rebase --abort
如果冲突已经解决,先add冲突文件,之后 git rebase --continue
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
rebase简介
mybranch 。 是基于master的拉取的分支.
变基前,master的分支在mybranch拉取代码后又有了新的提交,这个时候,想把master上新的提交放到mybranch上.此时使用rebase,相当于我的分支是基于新的master,即之前master上的新的提交也被合并到mybranch.
变基前master 的节点在d2 , 我在d1,两平行,变基后,
我的分支, 当前节点在d1,他的上一个节点是d2
即原来: d2(master), d1
现在: d2—>d1(master)
不想提交本次的修改,但需要切分支时可以使用 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 —> coommand+shift+p ——> 输入shell command ——> 选择Shell Command: Install ‘code’ command in PATH即可在终端使用code .
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:
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.task(name[, deps], fn) 定义任务 name:任务名称 deps:依赖任务名称 fn:回调函数
gulp.run(tasks...):尽可能多的并行运行多个task
gulp.watch(glob, fn):当glob(文件路径,可匹配)内容发生改变时,执行fn
gulp.src(glob):置需要处理的文件的路径,可以是多个文件以数组的形式,也可以是正则
gulp.dest(path[, options]):设置生成文件的路径
安装好node npm
sudo npm install -g gulp
npm install gulp --save-dev //安装gulp包
gulp -v 查看版本 // CLI 和本地版本都提示则显示成功注: -save 自动添加版本号到dependencies
-save-dev 自动添加到devdependencies部分
最好在新建项目的时候建.gitignore。
如果中途更新了.gitignore文件,没生效的原因是因为:.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。解决办法如下:
git rm -r --cached .
git add .
git commit -m ‘update .gitignore’
或者只添加了某一个,git rm --cached < file name >
https://zhuanlan.zhihu.com/p/62071906
前提:已经配置过了一个Git账号,即公司的.现在需要额外的增加自己的账号
环境: Mac
思路:生成两对公私钥,push时区分两个账户,推送到对应的仓库
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 [email protected]
一般在公司用公司的git比较多,所以可以把公司的
邮箱设置为全局的。如果不设置的话,每次第一次操作和远程相关的都会让关联
git config --global user.name “yourname”,
git config --global user.email "[email protected] "
然后在个人的项目中单独去设置邮箱,这个不能加–global
本地代码提交到远程个人仓库:
远程新建仓库,复制对应对的ssh地址
本地clone 复制下来的ssh地址
git init 初始化仓库
github上传项目的时候报出[email protected]: 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 [email protected]:cxhp/web-Music-demo.git (远程仓库的地址)
git remote -v 如果显示是刚刚添加的地址,则正确,按照正常的git提交流程走就ok了
据说: (存疑,反正我没用这个也是正常提交了的)新分支第一次提交,需要使用 git push –set-upstream “your repository” “your branch”