使用 Git 进行版本管理


使用 Git 进行版本管理

Git

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

Git 与 SVN 区别

Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。

如果你是一个具有使用 SVN 背景的人,你需要做一定的思想转换,来适应 Git 提供的一些概念和特征。
Git 与 SVN 区别点:

  • 1、Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。

  • 2、Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。

  • 3、Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。

  • 4、Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。

  • 5、Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

Git 与 SVN 区别

Git 本地操作命令

## Git 账号信息配置
## global 
git config --global user.name "xxx" 
git config --global user.email ""
## local
git config user.name "xxx" 
git config user.email ""

## 初始化 Git 本地仓库
# 初始化当前目录
git init
# 初始化指定目录,目录不存在则创建新目录
git init newrepo

## 添加文件到 Git 管理
git add filename
# 添加当前目录所有文件
git add .

## 删除
git rm file

## 提交文件到本地仓库
git commit -m "commit msg"
# commit 命令的-a选项可将所有被修改或者已删除的且已经被git管理的文档提交到仓库中
# 注意:-a不会造成新文件被提交,只能修改
git commit -a -m "Changed some files"

## 分支管理
# 创建本地分支
# branch 命令不会将我们带入分支,只是创建一个新分支
git branch test

## 删除本地分支
git branch -d test

## 更改我们所在的分支
git checkout test
# 第一个分支,或主分支,被称为"master"。
git checkout master

## 合并其他分支的更改到主分支
git checkout master
git merge test

Git 远程交互命令

# 设置远程主机名
git remote add origin https://gitee.com/section2014/notes.git

## 将内容推送到服务器
# git push <远程主机名> <本地分支名>:<远程分支名>
# 如果省略远程分支名,则表示将本地分支推送与之存在"追踪关系"的远程分支(通常两者同名)
# 如果该远程分支不存在,则会被新建。
git push -u origin master # 将本地的master分支推送到origin主机的master分支。如果后者不存在,则会被新建。
git push ssh://example.com/~/www/project.git
git push --set-upstream https://gitee.com/section2014/notes.git master

## 将服务器内容拉取到本地
# 从服务器克隆一个库
git clone --depth=1 https://github.com/vueComponent/ant-design-vue-pro.git [my-project]

# 从服务器拉取更新内容
git pull
git pull http://git.example.com/project.git

情景演示

从0开始创建新仓库

git clone https://git.inspur.com/iNOS/icloud/nscs-api.git
cd nscs-api 
touch README.md 
git add README.md 
git commit -m "add README" 
git push -u origin master

推送已经存在的文件夹到远程仓库

cd existing_folder
git init
git remote add origin https://git.inspur.com/iNOS/icloud/nscs-api.git
git add . 
git commit -m "Initial commit" 
git push -u origin master

推送已经被 Git 管理的文件夹到远程仓库

cd existing_repo
git remote rename origin old-origin 
git remote add origin http://git.inspur.com/iNOS/icloud/nscs-view.git
git push -u origin --all 
git push -u origin --tags

提交修改内容

git commit -m “更新文章”

git pull
git add .
git commit -a -m "Changed some files"
git push -u origin master

附:Windows CMD命令

删除文件 del 文件名
删除文件夹rd 文件夹名
相关参数:/s参数为子目录,/q参数为不用确认。

示例:

# 删除文件
del 123.txt
# 删除文件夹
rd nocc-view
rd/s/q nocc-view

文章作者: Guo.wl
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Guo.wl !
  目录