发布时间:2019-09-13 09:28:10编辑:auto阅读(1430)
裸版本库就是不含有工作区的版本库,而我们平常开发的代码库都是开发版本库,修改工作区,然后进行提交、推送提交等操作。
可以使用git init --bare命令创建一个裸版本库。裸版本库一般作为服务器上的版本库。
引用空间把远程分支版本库中的分支名映射到本地版本库中的分支名。其语法为:
[+]source:dest如果有加号则表示不会在传输过程中进行正常的快进安全检查。
操作 | 源 | 目标 |
---|---|---|
fetch | 抓取的远程引用 | 更新的本地引用 |
push | 推动的本地引用 | 更新的远程引用 |
比如git fetch命令会使用refspec:+refs/heads/:refs/remotes/origin/。其定义在.git/config文件中
git使用URL来定位远程版本库,支持多种url协议,常见的有http、https、git、ssh、file。
clone命令可以把远程的代码库克隆到本地,并在.git/config目录中记录远程版本库的url。.git/config文件如下:
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = D:/source-code/temp/server
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[branch "develop"]
remote = origin
merge = refs/heads/develop
注意[remote "origin"] url = D:/source-code/temp/server,其中origin是对url的一个别名,因为一个git库可能对应多个远程代码库(例如使用git remote add命令添加其他远程代码库,git协同模型的子树合并),如果没有这个别名,每次都填写这个长长的url会很麻烦,所以这个别名是必须的,而且clone的时候,别名默认为“origin”。
remote命令用于管理远程版本库
$git remote add daf_remote http://xxxx/*.git --------添加daf_remote为别名的url,此时会看到.git/config文件变更
$git remote rename <old> <new> -----重命名别名
$git remote remove <name> ------移除某个远程代码库
$git remote -v show ------移除某个远程代码库
pull=fetch+merge。当我们执行git pull命令实际上会首先执行fetch抓取命令,然后把当前分支和抓取的SHA1合并。
而当我们执行git pull命令的时候,git是如何知道拉取和合并的呢?
当我们执行git pull origin develop(:develop)的时候,同样和git pull相同,因为具体执行的时候,git fetch会补齐远程仓库和完整的refspac
push命令是和fetch命令是一个相反的命令,其refspac一般为refs/heads/${branchNam}:refs/heads/${branchNam}。表示源为本地refs/heads/${branchNam}的引用,目标为远程仓库refs/heads/${branchNam}的引用。
上一篇: 03-3 BGP专有命令--联盟
下一篇: H3C IPSEC OVER GRE配置
47848
46401
37285
34737
29318
25975
24918
19954
19549
18031
5795°
6419°
5932°
5964°
7070°
5917°
5948°
6441°
6405°
7782°