git 下载
git-scm.com/download/ma… 安装下brew
git --version // 查看git版本,是否安装了git
brew install git
gitHub 无法登陆
修改hosts
140.82.112.4 github.com
199.232.69.194 github.global.ssl.fastly.net
创建一个项目
hover 头像 -> your repositories -> new(button) 可选是否私有 -> 创建项目
上传代码到github
- 在跟目录下创建 .gitignore 里面写入上传github时要忽略的文件
node_modules
build
.gitignore 默认在文件夹中会被隐藏,可通过 commond + shift + .
- 首次上传代码
git init // 初始化仓库,默认master分支
git add . or git add '某个文件名' // 将代码从本地提交至暂存区
git commit -m 注释 // 暂存区内容添加到本地仓库中
// origin指向的就是你本地的代码库托管在Github上的版本
git remote add origin git@github.com:orangemiaos/test-github.git
// 将代码推送到远程仓库中
// 加了参数-u后,建立了与上游分支的联系,以后每次直接push就可以了
git push -u origin master
git 基本命令
- 分支 切换分支
git branch dev // 新建分支
git checkout dev // 切换到dev分支
git checkout -b dev // 新建并且切换到dev分支
查看分支
git branch // 查看分支 (只能查看本地分支),当前分支用 * 标记
git branch -r (remote) // 查看远程分支
git branch -a (all) // 查看本地和远程分支
删除分支
git branch -d dev // 删除本地dev分支
git branch -D dev // 如果dev分支有commit但是未push的数据
git push origin --delete dev // 删除远程分支,不会删除本地关联的dev分支,只不过会取消二者的关联
- 缓存
git stash // 将当前的工作状态保存到git栈,在需要的时候再恢复
git stash pop // 恢复最近的缓存到当前文件中,同时删除恢复的缓存条目
git stash apply xx // 恢复到指定缓存,不删除条目
git stash list // 查看缓存列表
git stash clear // 清除所有缓存
git stash drop xxx // 清除指定缓存
- 用户信息
git config --list
git config user.name xxx
git condig user.email xxx
- clone
git clone git地址 文件名称
- 查看提交记录
git log
git log --oneline // 简写形式
git log --oneline --graph // 查看版本路线
git log --author='zm9'
- 新建文件
touch index.html // 文件
mkdir mod // 文件夹
- 删除文件
git rm mod/hello.js ( 手动删除 + git add .)
- 重命名及移动文件
如果手动修改名字的话,git status显示 delete && add
使用命令行,则git status 显示rename
git mv test.html demo.html // 手动重命名 + git add .
git mv test.html mod // test.html 到 mod 文件夹下
git mv test.html mod index.html // test.html 到 mod 文件夹下,并改名index.html
git 基本使用
- 创建一个新分支推送到远程
git checkout -b dev // 新建并切换到dev分支
git add .
git commit -m xxx
git push -u origin dev
- 拉取远程dev分支到本地
git branch -r // 查看远程分支,选取一个分支 (origin/dev)
git checkout -b dev origin/dev // 新建一个与远程分支关联的本地分支
git push // 直接将修改内容推送到远程dev分支
3.从开发分支中拉取一个新的开发分支
git checkout -b newDev origin/dev // 本地没有开发分支,可随意处在哪个分支执行命令行
git push origin HEAD // push到同名分支可以直接用HEAD替代
// 本地已有开发分支,先切换到开发分支1
git checkout -b new2_branch // 从开发分支中剪出一个新分支
git push origin HEAD // push到同名分支可以直接用HEAD替代
- 代码添加到缓存区,从缓存区撤回
git status // 查看当前状态,红色在开发环境,绿色是在缓存区
git add . // 添加所有文件到缓存区
git add index.html // 添加 单个文件
// git restore 本身代表 是否撤销本地修改
// 加上 --staged 指令,则是将已经进入到缓存区的文件撤回,撤回到本地后不会初始化修改的代码
git restore . // 撤销工作区的所有文件修改
git restore index.html // 撤销工作区某个文件的修改
git restore --staged . //从缓存区撤回所有文件,但不会更改文件
git restore --staged index.js //从缓存区撤回单个文件
- 开发结束后发现自己改错了分支
git stash
git checkout dev
git stash pop
- 合并分支
// 将dev分支的内容合并到master分支
切换到master分支,git merge dev
git merge --abort // 冲突的时候保留当前分支代码,忽略其他分支代码
tag
基本操作
git tag v1.0 // tag
git tag v1.1 9a620ec911f8381c846cfce11328feeb2a6b8d84 // 给某个版本打tag
git tag // 查看tag
git log // 查看所有版本及他们的tag
git tag -d v1.1 // 删除tag
使用
git tag v1.0
git push origin v1.0 // 推向远程仓库
协同开发
- 不同的人修改了不同的文件
git pull 合并代码的时候需要 merge
输入i可以编写merge备注信息,输入后esc,:wq
- 其他操作
// 回退版本
git reset --hard HEAD^ // 回退到上一个版本
git reset --hard HEAD^^ // 回退到上上版本(以此类推)
git reset --hard 9a620ec911f8381c846cfce11328feeb2a6b8d84 // 回退到指定版本
// 回退某个文件的到指定版本
git checkout 563c6412599e8882257bdad5eb05c90007009ecd -- test.html
git切换数据源
git remote -v
git remote rm origin
git remote add origin https://github.com/orangemiaos/vueCli.git
git branch -M main
git push -u origin main