分布式锁的实现方案

简介

分布式锁是控制分布式系统或不同系统之间共同访问共享资源的一种锁实现,如果不同的系统或同一个系统的不同主机之间共享了某个资源时,往往需要互斥来防止彼此干扰来保证一致性。

Git命令记录

1. 基本操作

基本命令
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
mkdir notes
cd notes

# 初始化一个git仓库 
git init

echo "my notes" > readme.md

# 查看状态
git status

# 查看修改内容
git diff readme.md

# 添加文件到仓库
git add readme.md

# 提交更改
git commit -m "add readme"

# 查看提交日志
git log

# 回退到上一个版本
git reset --hard HEAD^

# HEAD: 当前版本
# HEAD^: 上一个版本
# HEAD~100: 前一百个版本
# 58a65b: 指定版本
工作区与暂存区
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
|-------|            |-------|               |-------|
| 工作区 | -- add --> | 暂存区 | -- commit --> | 主分支 |
|-------|            |-------|               |-------|


# 查看工作区与暂存区文件的差异
git diff readme.md

# 查看工作区和版本库最新版本的差异
git diff HEAD -- readme.md

# 放弃工作区的修改(未执行 git add 命令)
git checkout -- readme.md

# 撤销暂存区(已经执行了 git add 命令)
git reset HEAD readme.md
删除文件
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 删除文件
rm test.txt
git add test.txt
git commit -m "rm test.txt"

# 直接从版本库中删除文件
git rm test.txt
git commit -m "git rm test.txt"

# 还原文件
git reset --hard CommitID

2. 远程仓库

Github仓库
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
# 在本地创建一个 gitlearn 目录,并进入
mkdir gitlearn
cd gitlearn

# 使用命令 git init 初始化一个库
git init

# 添加远程库 origin
git remote add origin [email protected]:l1nker4/gitlearn.git

# 添加 readme.md 文件
echo "git learn is very easy!" > readme.md

# 添加文件并提交到仓库
git add readme.md
git commit -m "add readme"

# 执行向远程仓库 origin master 分支推送更新(-u 参数用于关联远程仓库)
git push -u origin master
更新远程仓库
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 查看当前分支的关联远程仓库
git branch -vv

# 查看远程仓库的 URL
git remote -v

# 重新设置远程仓库的 URL
git remote set-url origin [email protected]:l1nker4/gitlearn.git

# 将当前修改更新到远程 master 分支
git push origin master

3.分支管理

创建与合并分支
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# 查看当前分支
git branch 

# 基于当前分支创建新分支
git branch dev

# 切换分支
git checkout dev

# 创建并切换分支
git checkout -b dev

# 切换到 master 分支
git checkout master

# 合并指定分支到当前分支(合并 dev 分支到 master 分支)
git merge dev 

# 删除分支
git branch -d dev
冲突管理

在 master 分支上修改 readme.md,新增一行内容。提交修改。 在 dev 分支上修改 readme.md,也新增一行内容。提交修改。

0%