git新建分支1切换到基础分支如主干git checkout master2创建并切换到新分支git checkout -b newBranch // git branch可以看到已经在newBranch分支上3)更新分支代码并提交git add *git commit -m “init panda”git push origin panda4)在git代码管理界面经可以看到panda分支了成功~~git查看生成的密钥: cat ~/.ssh/id_rsa.pub【 查看 】$ git status // 显示有变更的文件$ git log // 显示当前分支的版本历史$git reflog // 获取执行过的命令$ git diff // 显示暂存区和工作区的代码差异$ git diff --cached // 暂存区和 HEAD 的差异$ git diff HEAD // 工作区和 HEAD 的差异[注意: diff 查看文件时 warning: LF will be replaced by CRLF in windows中换行符为CRLF 而在linux下的换行符为LF所以在执行add . 时出现提示解决办法git config --global core.autocrlf false]$ git show [commit] //显示某次提交的原数据和内容变化$ git log --oneline -5 //命令查看最近 5 次的提交信息【 分支 】$ git checkout 创建分支切换分支$ git checkout -b 分支名 // 创建并切换到新建的分支上$git branch //查看所有分支 加上 -a可查看远程分支合并分支$git merge 分支名 // 合并 分支 到当前分支上git merge --no-ff -m // ‘合并描述’ 分支名 不使用Fast forward方式合并// 采用这种方式合并可以看到合并记录git log --graph // 查看分支合并图$git brabch -b 分支名 origin/分支名 // 创建远程分支到本地git branch --merged // 查看别的分支和当前分支合并过的分支删除分支$ git branch -d 分支名 // 删除分支 -D 强行删除$git branch origin :分支名 // 删除远处仓库分支【 远程同步 】1.下载远程仓库的所有变动$ git remote update --更新远程仓储$ git remote -v // 显示更详细的信息 抓取和推送的origin的地址 如果没有推送权限看不到2.取回远程仓库的变化并与本地分支合并$ git pull [remote] [branch]3.上传本地指定分支到远程仓库$ git push 远程仓库 分支【 撤销 】git reset --hard (commit_id) // 回退到某个版本git checkout – file // 撤销修改的文件(如果文件加入到了暂存区则回退到暂存区的// 如果文件加入到了版本库则还原至加入版本库之后的状态)git reset HEAD file // 撤回暂存区的文件修改到工作区 git add 到暂存区但还没git commit【 暂存操作 Bug分支 】git stash // 暂存当前修改git stash apply // 恢复最近的一次暂存git stash pop // 恢复暂存并删除暂存记录git stash list // 查看暂存列表git stash clear // 清除暂存// 场景 当前正在dev分支上进行的工作还没有提交 你接到一个修复代号101的bug任务时//代码只写了一半没法提交但是bug必须在两小时内修复怎么办git stash // 把当前工作现场“储藏”起来等以后恢复现场后继续工作git status // 查看工作区 是干净的 可以放心创建分支修复bug//首先确定要在哪个分支上修复bug假定需要在master分支上修复就从master创建临时分支git checkout mastergit checkout -b issue-101 // 创建修复bug分支// 修复bug 提交就可以了 git add . git commit -m “fix bug 101”// 修复完成后切换到master分支并完成合并最后删除git checkout mastergit merge --no-ff -m “merged bug fix 101”git branch -d issue-10// 回到dev分支 可以用git stash list 查看暂存列表git stash pop // 恢复暂存并删除暂存记录git stash apply stash{0} // 恢复指定的stashGitHub提交出了些问题导致之前提交的更新丢失考虑回退到之前的版本恢复历史版本git reset --hard [你的commit id] // 回退之前版本git push -f -u origin master // 强制推送【 标签操作 】git tag 标签名 // 添加标签(默认对当前版本)git tag 标签名 commit_id // 对某一提交记录打标签git tag -a 标签名 -m ‘描述’ // 创建新标签并增加备注git tag // 列出所有标签列表git show 标签名 // 查看标签信息git push origin 标签名 // 推送标签到远程仓库git push origin --tags // 推送所有标签到远程仓库git tag -d 标签名 // 删除本地标签git push origin :refs/tags/标签名 // 从远程仓库中删除标签【 常规操作 】git push origin test // 推送本地分支到远程仓库git rm -r --cached 文件/文件夹名字 // 取消文件被版本控制git check-ignore -v 文件名 // 查看忽略规则git add -f 文件名 // 强制将文件提交【 git-bush 常用命令 】$ pwd // 打印工作目录$ls // 目录 ls -a 包括隐藏文件|目录“- f ”忽略不存在的文件强制删除不给出提示。$clear // 清屏$vi 文件名 // 编辑 i 进入插入模式 esc 回到命令模式 :w 保存 :q退出 :wq 保存退出【 git全局配置 】$ git config --global user.name “Your Name”$ git config --global user.email “emailexample.com”【 vue项目 】在github创建一个远程仓库空仓库git init [program-name] 新建一个目录将其初始化为Git代码库本地已经有一个仓库了但是刚才修改了一些文件。$git add .$git commit -m ‘initial’推送远程仓库$git remote add origin url // 关联远程仓库 , 给远程仓库的地址 取别名$git push -u origin master // 按照别名推送master分支忽略已加入到版本库中的文件git update-index --assume-unchanged file 忽略单个文件git rm -r --cached 文件/文件夹名字 (. 忽略全部文件)取消忽略文件git update-index --no-assume-unchanged file拉取、上传免密码git config --global credential.helper store如果项目已经有git需要换一个git地址git remote -v 确认本地是否关联了旧仓库→ git remote remove origin解绑旧远程仓库→ git remote add origin https://新仓库的地址.git绑新→ git push -u origin (master)推送如果新建仓库时勾选了 README/.gitignore推送会报错解决方案# 先拉取远程文件并合并 git pull --rebase origin main # 再次推送 git push保留旧仓库仅新增推送目标# 给新仓库起别名new-origin可自定义 git remote add new-origin https://新仓库地址.git # 推送到新仓库 git push new-origin master【 分支完成 推送远程分支 】git push 远程仓库地址 login // 推送到远程仓库 login分支git checkout master // 切换到主分支git merge login // 合并分支git push 远程仓库地址 master // 主分支推送如果代码写错分支 写到主分支 还git add . git commit -m “”退回git add . 版本然后在主分支上创建切换分支 分支就会有主分支代码如果只是写错分支 代码也是最新的 直接创建切换到新分支npm un node-sass 卸载 node-sassnpm i node-sass -D 安装node-sassnpm i server-cli -g 全局安装 服务器cli【git仓库和github仓库之间的传输协议】.ssh1.创建SSH Key (在用户主目录下,看看有没有.ssh目录如果有该目录下是否有 id_rsa和id_rsa.pub,如果有这两个文件.直接跳过下一步,没有 创建)$ ssh-keygen -t rsa -C “youremailexample.com” // 你的邮箱2.登陆GitHub打开Account settings,SSH Keys页面然后点“Add SSH Key”填上任意Title在Key文本框里粘贴 id_rsa.pub 文件的内容点“Add Key”你就应该看到已经添加的Key3.github上创建仓库// 关联远程仓库 , 给远程仓库的地址 取别名git remote add origin https://github.com/magicstf/learngit.git$git push -u origin master // 按照别名推送master分支 -u参数Git不但会把本地的master分支内容推送的远程新的master分支还会把本地的master分支和远程的master分支关联起来在以后的推送或者拉取时就可以简化命令 git push【从远程库克隆】1.从零开始 先创建远程库 登录GitHub 创建一个新的仓库2.$ git clone gitgithub.com:magicstf/gitskills.git // 克隆到本地仓库【多人协作的工作模式通常是这样】首先可以试图用git push origin 推送自己的修改如果推送失败则因为远程分支比你的本地更新需要先用git pull试图合并如果合并有冲突则解决冲突并在本地提交没有冲突或者解决掉冲突后再用git push origin 推送就能成功如果git pull提示 no tracking information 则说明本地分支和远程分支的链接关系没有创建用命令git branch --set-upstream-to origin/。【忽略特殊文件】在Git工作区的根目录下创建一个特殊的.gitignore文件然后把要忽略的文件名填进去Git就会自动忽略这些文件。忽略原则忽略操作系统自动生成的文件忽略编译生成的中间文件、可执行文件等也就是如果一个文件是通过另一个文件自动生成的那自动生成的文件就没必要放进版本库比如 /node_modules、/dist目录忽略你自己的带有敏感信息的配置文件比如存放口令的配置文件。【查找某文件修改历史记录】git log 文件名git log --stat [查到的提交记录号] 查看commit历史以及每次commit发生变更的文件列表