版本控制

​ 版本控制:集中式版本控制(SVN),分布式版本控制(Git)

​ 版本控制工具的功能:协同修改、数据备份、版本管理(SVN:增量式版本控制;Git:文件系统快照)、权限控制(Git独有)、历史记录、分支管理

Git

​ Git官网:https://git-scm.com/

本地结构

​ 工作区——(git add)——>暂存区——(git commit)——>本地库

本地命令行

初始化本地库

git init

设置签名

# 仓库级别
git config user.name tian
git config user.email 18810721315@163.com
# 查看本仓库下.git/config
$ cat config
[core]
        repositoryformatversion = 0
        filemode = false
        bare = false
        logallrefupdates = true
        symlinks = false
        ignorecase = true
[user]
        name = tian
        email = 18810721315@163.com
# 系统级别
git config --global user.name tmy
git config --global user.email 18810721315@163.com
# 查看git家目录下.gitconfig
$ cd ~
$ cat .gitconfig
[user]
        name = tmy
        email = 18810721315@163.com

提交

# 查看提交状态
git status
# 添加到缓存区
git add test.java
# 从缓存区撤回到工作区
git rm --cached test.java
# 提交到本地库
git commit -m "message" test.java
# 修改的文件,从工作区直接提交到本地库,注意没有文件名
git commit -am "message"

查看本地库记录

git log # 只能显示之前的版本
git log --oneline
git reflog # 推荐
ea1836a (HEAD -> master) HEAD@{0}: commit: insert eeeeee
3bf1f55 HEAD@{1}: commit: insert dddddd

版本切换

# 仅移动本地库版本指针<HEAD>
git reset --soft
# 移动本地库版本指针<HEAD>,重置暂存区
git reset --mixed
# 移动本地库版本指针<HEAD>,重置暂存区,修改工作区
git reset --hard
# 1、基于索引值操作 推荐
git reset --hard 3bf1f55
# 2、^ 回退一个版本
git reset --hard HEAD^
# 3、~ 回退指定版本步数
git reset --hard HARD~3

文件比较

# 与缓存区进行比较
git diff test.java
# 与本地库进行比较
git diff ea1836a test.java

分支管理

​ git:管理分支是新建一个指针指向文件

​ svn:复制一份文件到新分支

# 查看分支
git branch -v
# 创建分支
git branch [分支名]
# 切换分支
git checkout [分支名]
# 合并分支
git merge [分支名]
# 解决冲突
1、合并分支,2、处理文件内容,3、添加到暂存区,4、提交到本地库

托管中心

​ 局域网环境下:GitLab

​ 外网环境下:GitHub、Gitee

本地与远程交互

创建链接别名

# 查看链接别名
git remote -v
# 创建链接别名
git remote add [别名] [地址]

代码托管

# 推送到托管中心
git push [远程地址] 分支

团队协作

# 克隆远程库
# 1、把远程库下载到本地
# 2、创建远程库别名
# 3、初始化本地库
git clone [远程地址]
# 推送到托管中心
# 前提是:此人必须加入远程地址的开发团队
git push [远程地址] [分支名]
# 拉取远程仓库
# 只是把远程仓库的内容下载下来,不修改本地文件
# 内容查看 git checkout [远程地址/分支名]
git fetch [远程地址] [分支名]
# 本地仓库合并远程仓库
git merge [远程地址/分支名]
# 拉取+合并
git pull [远程地址] [分支名]
# 解决冲突
1、拉取,2、处理文件,3、添加到暂存区,4、提交到本地库,5、推送到托管中心

跨团队协作

# 创建远程库一个自己的分支
通过别人的远程地址,fork为自己的远程仓库分支
# 克隆自己fork的远程库
git clone [远程地址]
# 推送到托管中心
git push [远程地址] [分支名称]
# 远程中心 new pull request
# 远程中心 create pull request
# 远程中心 merge pull request
# 拉取并合并
git pull [远程地址] [分支名]

SSH免密登录

# 回到本地git家目录
cd ~
# 添加根SSH key
ssh -keygen -t rsa -C [邮箱账号]
# 进入.ssh目录,复制id_rsa.pub,并在远程仓库添加
# 添加ssh别名
git remote add [别名] [地址]
# 推送到远程仓库
git push [远程地址] [分支名称]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值