git/github、svn

git、github、svn版本控制与协作工具

Posted by page on August 31, 2021

git

创建仓库

git init [filename] [directory]
git clone [rep url] [directory]
git remote add origin https://github.com/KID-1912/xxx.git

基本操作

  • git pull 拉取远程代码并合并

  • git add . 将工作区修改添加至暂存区

  • git commit -m "your comment" [--amend] 提交暂存区至本地仓库 [替换上次commit]

  • git push origin branchName -f 推送至远程代码并合并 [强制]

查看信息

  • git status 当前git环境各文件状态
    • untracked:暂未版本控制状态
    • modified:受版本控制并且已修改的状态
    • staged:受版本控制已修改并提交到(add)暂存区的状态
    • committed 从暂存区已经提交到(commit)本地仓库的状态
  • git diff [file] 比较暂存区与工作区
  • git log [--oneline] 查看历史提交(commit)记录 [单行概述]
  • git blame [file] 查看指定文件的历史修改记录

分支管理

  • git branch [-d] [-m] [-a] [name] 查看分支列表 [删除] [重命名] [查看远程分支] [创建分支]

  • git switch branchName 切换分支

  • git checkout [-b] name [创建并切换至新分支] 切换分支

  • git fetch origin master:master 拉取远程指定分支并同步更新对应本地分支

  • git merge [branchname] --continue 合并分支

  • git rebase [branchname] --continue / git pull --rebase 变基并分支

  • git tag -a [标签名] -m [注释] 打标签

  • git push —tags origin master 标签推至远程

  • git push --force-with-lease origin master 检查远程无提交后强制推送(常用于rebase)

代码回退

  • git checkout . git checkout -- <file> 将工作区[指定]文件重置为暂存区
  • git restore [file] 将工作区指定文件重置为暂存区
  • git reset HEAD 将暂存区全部文件重置为本地分支目录
    • --hard [HEAD/版本号] 将工作区、暂存区全部文件重置为本地分支目录/指定分支版本
    • --mixed 工作区不变化,暂存区清空(未add过状态)
    • --soft 工作区不变化,暂存区回退(暂存区回退为上次add前)

临时存储

  • git stash git stash save -a "xx" 将当前未提交修改储存起来

  • git stash apply [id] git stash pop [id] 仅最近/指定id储藏应用/并移除记录

  • git stash list 查看储藏列表

  • git stash clear 清除所有储藏

文件操作

  • git rm [--cached] <file> [仅对暂存区]删除目录下文件[夹]
  • git mv <filename> <newfilename> 重命名文件

忽略文件

## OS
.DS_Store
.idea
*.log

## Local
node_modules

## Built-files
.cache
dist

基本配置

  • 提交时用户信息备注

    git config --global user.name "KID-1912"
    git config --global user.email heyutongxue@gmail.com
    
  • 是否开启自动转换为CRLF换行符

    git config –-global core.autocrlf false
    
  • 代理设置(git执行远程操作报错 443)

    git config --global --get http.proxy
    git config --global http.proxy 127.0.0.1:19180
    

:所有config命令去掉–global参数,即只对当前仓库生效

其它命令

  • git fetch origin remoteBranchName:localBranchName拉取远程分支 [:作为本地分支]

    注:不生成

  • git rebase tempbranch 变基合并(将最新的tempbranch作为基底并入)

  • git rebase --containue 继续此次由于冲突导致停止的rebase合并

  • ssh-keygen -t rsa -C “your email” 生成ssh key

github

一键同步vscode插件

借助github的gist实现本地vscode插件同步

  1. github平台新建Personal access tokens串

  2. githubGist创建gist串

  3. vscode安装Setting Sync,ctrl+shift+p,搜索sync高级选项

  4. 在高级选项中填入串,Shift + Alt + U读取本地配置至gist

  5. 新电脑安装同一插件,在高级选项中填入串,Shift + Alt + U同步配置至本地

svn

工具安装

TortoiseSvn(小乌龟)

SVN生命周期

  1. 新建版本库(Create)

    1.1 版本库唯一,部署在远程服务器

    1.2 所有工作副本均来自版本库文件检出

  2. 检出副本(Checkout)

    将版本库中的指定项目目录检出至本地作为工作副本

  3. 编辑本地副本

  4. 检查修改,对比版本库

  5. 本地同步为最新版本库状态,确保没有conflict(Update)

  6. 提交更改,更新版本库(Commit)

其他操作

  • 还原(Rever)

    丢弃本地副本的指定修改部分,还原至起始状态

  • 更新至版本

    将本地副本切换为指定版本,再调用commit即版本库回退

其他概念

  • Tag/Branch

    将本地副本或者版本库目录复制为一份新的版本库目录,可用于版本标记或者作为合并源合并

SVN初次连接

  1. VPN连接内网

    IP地址,用户名,密码

  2. SVN登录

    用户名,密码

  3. 连接成功,浏览版本库