parent
9b2f5bb928
commit
4d91dc94a5
2 changed files with 170 additions and 0 deletions
@ -0,0 +1,74 @@ |
|||||||
|
--- |
||||||
|
title: git局域网部署方法 |
||||||
|
date: 2024-07-06 16:13:10 |
||||||
|
updated: |
||||||
|
tags: |
||||||
|
categories: |
||||||
|
keywords: |
||||||
|
description: |
||||||
|
top_img: |
||||||
|
comments: |
||||||
|
cover: |
||||||
|
toc: |
||||||
|
toc_number: |
||||||
|
toc_style_simple: |
||||||
|
copyright: |
||||||
|
copyright_author: |
||||||
|
copyright_author_href: |
||||||
|
copyright_url: |
||||||
|
copyright_info: |
||||||
|
katex: |
||||||
|
aside: |
||||||
|
--- |
||||||
|
|
||||||
|
### 远程仓库为裸库 |
||||||
|
|
||||||
|
原文链接:[git init 和 git init --bare 的区别? - SegmentFault 思否](https://segmentfault.com/q/1010000004683286) |
||||||
|
|
||||||
|
在本文中我将: |
||||||
|
|
||||||
|
1. 使用“普通库”代指用"git init"命令创建的GIT库; |
||||||
|
2. 使用“裸库”代指用"git init --bare"命令创建的GIT库; |
||||||
|
|
||||||
|
当你创建一个普通库时,在工作目录下,除了.git目录之外,你还可以看到库中所包含的所有源文件。你拥有了一个可以进行浏览和修改(add, commit, delete等)的本地库。 |
||||||
|
当你创建一个裸库时,在工作目录下,只有一个.git目录,而没有类似于本地库那样的文件结构可供你直接进行浏览和修改。但是你仍旧可以用git show命令来进行浏览,举个例子(参数为某个commit的SHA1值): |
||||||
|
|
||||||
|
```1c |
||||||
|
# git show 921dc435a3acd46e48e3d1e54880da62dac18fe0 |
||||||
|
``` |
||||||
|
|
||||||
|
一般来说,一个裸库往往被创建用于作为大家一起工作的共享库,每一个人都可以往里面push自己的本地修改。一个惯用的命名方式是在库名后加上.git,举个例子: |
||||||
|
|
||||||
|
```shell |
||||||
|
# mkdir example.git |
||||||
|
# cd example.git |
||||||
|
# git init --bare . |
||||||
|
``` |
||||||
|
|
||||||
|
这样你便拥有了一个叫做example的共享库。在你自己的本地机器上,你可以用git remote add命令做初始化check-in: |
||||||
|
|
||||||
|
```arduino |
||||||
|
// assume there're some initial files you want to push to the bare repo you just created, |
||||||
|
// which are placed under example directory |
||||||
|
# cd example |
||||||
|
# git init |
||||||
|
# git add . |
||||||
|
# git commit -m "My initial commit message" |
||||||
|
# git remote add origin git@example.com:example.git |
||||||
|
# git push -u origin master |
||||||
|
``` |
||||||
|
|
||||||
|
项目团队里面的每个人都可以clone这个库,然后完成本地修改之后,往这个库中push自己的代码。 |
||||||
|
|
||||||
|
```shell |
||||||
|
# git clone git@example.com:example.git |
||||||
|
# cd example |
||||||
|
``` |
||||||
|
|
||||||
|
参考: |
||||||
|
|
||||||
|
1. 普通库与裸库的区别:[http://stackoverflow.com/questions/78611...](https://link.segmentfault.com/?enc=lLWVVeNNumxbP2vYL9ojYw%3D%3D.BqbZ3umE1qrl5vrc4QWiIAb%2BPkvshQie334qAJGd6LVOCUvAlru%2BeawbIKb26U8BqtCVSmCoAPjYmL%2BAFfvnQ2GHkQTIQIU3h2uazENKKbL56rNTEy%2Fkz%2BsHGgzC3a%2BxaQwgjw4KWoiZrfw6hRM4Jg%3D%3D) |
||||||
|
2. 该如何使用一个裸库:[http://stackoverflow.com/questions/76324...](https://link.segmentfault.com/?enc=iQmnxal%2FiW0duRfVqXvLiQ%3D%3D.kLMwiGW%2F7M9HbJHJtGzh9I5cDot%2B8dlYrb4MIzxBMDSLiWr9Ov0qaDkNTXr5LfMSWL0rb5uSjDLi7xkwWMfACvi%2BKSjMRMcG8bBTOYxzTVqCmO3Z%2Bn2YFPvRDoByhyPk) |
||||||
|
3. 什么是GIT裸库:[http://www.saintsjd.com/2011/01/what-is-...](https://link.segmentfault.com/?enc=%2F2MaQ3DUFWe5T32J7xoL%2Bw%3D%3D.siBKwdqR%2BabLLsBBbuf20hp2pbslHILoy7OxvBMb%2Be%2BFmwAIZNqBnJashZH7ucvTHnhjtmD9q%2FdSav0yXC9hRA%3D%3D) |
||||||
|
4. 如何设置一个远程共享库并进行团队协作:[http://thelucid.com/2008/12/02/git-setti...](https://link.segmentfault.com/?enc=BOhAZAnfIo6lDGqUaFweYA%3D%3D.oqGSUrzQ3Teka6qeQcX9WB%2Fy8MjmP2mJ6RsLcVuRTVayeo8qCQZE%2FhpwkgFZJ9QF5S%2BH%2F0o%2B8tpj50eXnWsFQqqG46W3rfp%2FqocD2SbXJtGaw6lt8B3hXnVk0HmsfxNs) |
||||||
|
5. git remote add与git clone的区别:[http://stackoverflow.com/questions/48555...](https://link.segmentfault.com/?enc=ihk0a3sTuFSaXhUhdf%2BP1Q%3D%3D.HeXVPE730SeraODfQ52aES89sSUFgt6Wj8UNfhF%2B5xG%2F%2BgMCp9j50iu4u%2BFjMzLJSrDEUDGE7UTydBLTih1fMz%2BJzmW03KaxGIjthaJuTKK5V%2BjUTa4vgc8089xfLBkG) |
@ -0,0 +1,96 @@ |
|||||||
|
--- |
||||||
|
title: 关于PyQt的connect传入lambda函数作为参数调用槽函数的一点思考 |
||||||
|
date: 2024-09-25 21:53:35 |
||||||
|
updated: |
||||||
|
tags: |
||||||
|
categories: |
||||||
|
keywords: |
||||||
|
description: |
||||||
|
top_img: |
||||||
|
comments: |
||||||
|
cover: |
||||||
|
toc: |
||||||
|
toc_number: |
||||||
|
toc_style_simple: |
||||||
|
copyright: |
||||||
|
copyright_author: |
||||||
|
copyright_author_href: |
||||||
|
copyright_url: |
||||||
|
copyright_info: |
||||||
|
katex: |
||||||
|
aside: |
||||||
|
--- |
||||||
|
|
||||||
|
## 关于lambda表达式 |
||||||
|
|
||||||
|
#### 当处于循环中的时候,以下四种情况返回值不符合预期的原因: |
||||||
|
|
||||||
|
1. button.clicked.connect(lambda: self.change_status(row_idx)) # 不行, 每次都是传入最新值 |
||||||
|
|
||||||
|
解读: |
||||||
|
|
||||||
|
每次循环,lambda都是一个预定义的函数,并没有执行。等价如下: |
||||||
|
|
||||||
|
```python |
||||||
|
def 匿名函数(): |
||||||
|
self.change_status(row_idx) # 其中row_idx是外部变量 |
||||||
|
``` |
||||||
|
|
||||||
|
因此,循环的结果就是相当于定义了多个无参的、使用外部参数计算结果的函数。 |
||||||
|
|
||||||
|
2. button.clicked.connect(lambda r=row_idx: self.change_status(r)) # 不行, 每次都传入False |
||||||
|
|
||||||
|
解读: |
||||||
|
|
||||||
|
每次循环定义一个带有默认参数的函数,并没有执行。等价如下: |
||||||
|
|
||||||
|
```python |
||||||
|
def 匿名函数(r=row_idx): |
||||||
|
self.change_status(r) # 其中row_idx是外部变量 |
||||||
|
``` |
||||||
|
|
||||||
|
因此,如果循环了很多遍。再调用这个函数: |
||||||
|
|
||||||
|
```python |
||||||
|
# 第一种 |
||||||
|
匿名函数() # 这种调用形式相当于默认参数, 此时的r等于定义函数的时候给的默认值 |
||||||
|
|
||||||
|
# 第二种 |
||||||
|
匿名函数(r) # r在最后一次循环的时候, 已经被最新的row_idx值覆盖了。再传就是新值。 |
||||||
|
``` |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
3. button.clicked.connect(lambda checked, r=row_idx: self.change_status(r)) # 行 |
||||||
|
|
||||||
|
解读: |
||||||
|
|
||||||
|
每次循环定义一个带有一个参数checked, 一个默认参数r的函数。等价如下: |
||||||
|
|
||||||
|
```python |
||||||
|
def 匿名函数(checked, r=row_idx): |
||||||
|
self.change_status(r) # 其中row_idx是外部变量 |
||||||
|
``` |
||||||
|
|
||||||
|
此时调用,必须传入checked: |
||||||
|
|
||||||
|
```python |
||||||
|
匿名函数(arg) |
||||||
|
``` |
||||||
|
|
||||||
|
此时必须传入一个参数,实际上传入的参数覆盖了checked的值,并没有覆盖r的值,r还是等于定义函数的时候的默认值。 |
||||||
|
|
||||||
|
4. button.clicked.connect(partial(self.change_status, row_idx)) # 行 |
||||||
|
|
||||||
|
解读: |
||||||
|
|
||||||
|
定义函数的时候设置默认值,不接受传入值。 |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## 总结: |
||||||
|
|
||||||
|
pyqt在此处出现不符合预期的情况可能是: |
||||||
|
|
||||||
|
- qt的connect不能传入参数。只能接受信号量携带过来的。 |
||||||
|
- 实际使用过程中,有传参的情况,会被传入一个值False。比如上述第二种情况,而第三种情况checked被赋值为False,r不受影响。 |
Loading…
Reference in new issue