git操作

289 阅读5分钟

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

  1. 在跟目录下创建 .gitignore 里面写入上传github时要忽略的文件
node_modules
build 

.gitignore 默认在文件夹中会被隐藏,可通过 commond + shift + .

  1. 首次上传代码
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 基本命令

  1. 分支 切换分支
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分支,只不过会取消二者的关联
  1. 缓存
git stash            // 将当前的工作状态保存到git栈,在需要的时候再恢复

git stash pop        // 恢复最近的缓存到当前文件中,同时删除恢复的缓存条目
git stash apply xx   // 恢复到指定缓存,不删除条目

git stash list       // 查看缓存列表

git stash clear      // 清除所有缓存
git stash drop xxx   // 清除指定缓存
  1. 用户信息
git config --list 
git config user.name xxx
git condig user.email xxx
  1. clone
git clone git地址 文件名称
  1. 查看提交记录
git log 
git log --oneline             // 简写形式
git log --oneline --graph     // 查看版本路线
git log --author='zm9'
  1. 新建文件
touch index.html       // 文件
mkdir mod              // 文件夹
  1. 删除文件
git rm mod/hello.js ( 手动删除 + git add .)
  1. 重命名及移动文件
如果手动修改名字的话,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 基本使用

  1. 创建一个新分支推送到远程
git checkout -b dev  // 新建并切换到dev分支
git add . 
git commit -m xxx
git push -u origin dev
  1. 拉取远程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替代
  1. 代码添加到缓存区,从缓存区撤回
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 //从缓存区撤回单个文件
  1. 开发结束后发现自己改错了分支
git stash
git checkout dev
git stash pop
  1. 合并分支
// 将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 // 推向远程仓库

协同开发

  1. 不同的人修改了不同的文件
git pull 合并代码的时候需要 merge
输入i可以编写merge备注信息,输入后esc,:wq
  1. 其他操作
// 回退版本
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