Git

Git 是一个分布式版本控制系统,保存的是文件的完整快照,而不是差异变换或者文件补丁。Git 每一次提交都是对项目文件的一个完整拷贝,因此你可以完全恢复到以前的任何一个提交。Git 每个版本只会完整拷贝发生变化的文件,对于没有变化的文件,Git 只会保存一个指向上一个版本的文件的指针。

 

Git 工程在本地有三个工作区域

  • 工作区:进行日常开发的区域。
  • 暂存区域:运行 git add 命令后文件保存的区域,也是进行 commit 的区域。
  • 本地仓库:本地版本库,记录工程的提交历史,意味着数据永远不会丢失。

 Git 的基本工作流程就是

  1. 从远程仓库将项目clone到本地;
  2. 在本地工作区进行开发:增加、删除或者修改文件;
  3. 将更改的文件add到暂存区域;
  4. 将暂存区的更新commit到本地仓库;
  5. 将本地仓库push到服务器。

 

Git 分支:

几乎所有的版本控制系统都以分支的方式进行操作,分支是独立于项目主线的一条支线,我们可以在不影响主线代码的情况下,在分支下进行工作。

首先,项目存在两个长期分支:

主分支(maste):专门用于部署以及负责线上代码回滚的分支,是最为稳定的一个分支。

开发分支(develop):专门存放经过测试之后,保证代码无bug的代码分支。开发的时候主要依托于develop分支开发,基于develop分支新建分支,经过严格测试之后,才能合并到develop中。

开发过程中会从develop分支中衍生出临时开发分支:

  • 项目开发分支(feature):此分支特点是周期长、需要团队协作、代码量大。工作方式是需要创建本地以及远程feature分支,代码基于develop分支代码,经过开发、测试之后,最终合并到develop分支上。
  • 紧急bug、其他问题修复分支(hotfix):此分支特点是修改时间短、优先级高、代码量稍小、改完之后急需测试、上线。此分支会是团队协作或者单人、团队协作工作方式会类似feature分支,单人只需构建本地分支即可满足开发要求,当修复上线一段时间后,即可删除。
  • 预发布分支(release):此分支是项目开发完成,经过测试没有问题之后,从develop分支分出用于项目的预发布,预发布一段时间没有问题之后合并到master分支进行正式发布。

 

分支操作:

git branch [branch-name] //创建分支
git branch branch_0.1 master 从主分支master创建branch_0.1分支
git branch  //列出分支
git branch -r //列出远程分支
git branch -a //列出所有分支
 
git checkout [branch-name] // 切换到该分支
git checkout [commitId] // 切换到提交id的版本分支
git switch [branch-name] // 新命令,切换到分支
git branch -d [branch-name] //删除分支
git checkout -b [branch-name] //新建一个本地分支,并切换到该分支
git checkout -b [branch-name] origin/[branch-name] //新建一个基于远程分支的本地分支,并切换到该分支
git branch -m branch_0.1 branch_1.0将branch_0.1重命名为branch_1.0

 

远程仓库操作:

检出仓库:git clone
查看远程仓库:git remote -v
添加远程仓库:git remote add [name] [url]
删除远程仓库:git remote rm [name]
修改远程仓库:git remote set-url—push [name] [newUrl]
拉取远程仓库:git pull [remoteName] [localBranchName]
本地与服务器端同步: git pull 
将本地分支推送到服务器上去: git push(远程仓库名) (分支名) 
从远程获取最新版本到本地,不会自动merge同步至服务器端: git fetch
如果想把本地的某个分支test提交到远程仓库,并作为远程仓库的master分支,或者作为另外一个名叫test的分支,如下:
$git push origin test:master// 提交本地test分支作为远程的master分支

$git push origin test:test// 提交本地test分支作为远程的test分支

 

其他常用命令:

git merge origin/dev将分支dev与当前分支进行合并 
git add [file name]添加一个文件到git index
git diff查看尚未暂存的更新
git diff --cached 或 git diff --staged查看尚未提交的更新
git ls-files看已经被提交的
 
git commit提交
git commit -a 提交当前repos的所有的改动
git commit -v当你用-v参数的时候可以看commit的差异
git commit -m "This is the message describing the commit" 添加commit信息 
 
git rm [file name]删除一个文件
git rm a.a移除文件(从暂存区和工作区中删除)
git rm --cached a.a移除文件(只从暂存区中删除)
git rm -f a.a强行移除修改后文件(从暂存区和工作区中删除)
 
git status 查看当前状态
git config --list看所有用户
git log 查看commit的日志
git reset --hard HEAD^HEAD is now at 1bc0043 Merge branch 'master' of put-me-down` 版本回退
 
git stash push将文件给push到一个临时空间中
git stash pop将文件从临时空间pop下来

 

posted @ 2023-10-31 23:11  h2303  阅读(8)  评论(0)    收藏  举报