要参加任何一个Git项目的协作,那么对远程仓库的使用时非常重要的。远程仓库指的是在互联网或其他网络上托管的项目仓库版本,比如GitHub上的仓库。
前面其实已经讲过如何添加远程仓库,比如使用git clone
命令就可以将远程的仓库拉取下来。还有一种显式地添加仓库的方法,可以添加一个远程仓库,并给仓库起一个简单名称以便引用。可以执行git remote add [shortname] [url]
命令。
比如:
git remote add gs https://github.com/XXXXX/gitstudy.git
然后你就可以使用gs来替代完整的URL在后续的命令中了。
如果想要查看使用了哪些远程仓库,你可以使用git remote
命令。该命令会显示每个远程仓库的简短名称。在克隆某个仓库后,你至少可以看到名为origin的远程仓库,这是Git仓库取的默认名称。
你也可以使用-v
选项,这会显示Git存储的每个远程仓库对应的URL
这个命令会列出所有的远程仓库地址。
要从远程项目获取数据,可以执行:
git fetch [remote-name]
这条命令会从远程仓库中获取本地仓库中没有的数据。执行这条命令之后,你就可以在本地引用远程仓库包含的所有分支,并可以在任何时候合并或检查这些分支。
我现在在远程仓库添加了一个新文件
执行git fetch
命令
执行git merge gs/master
会把更新内容合并到本地仓库
当然如果你有一个跟踪某个远程分支的本地分支,可以使用git pull
自动获取远程数据,并将远程分支合并到本地分支。
git fetch
和git pull
的区别就是git fetch
当你准备好之后需要手动输入命令进行合并,看起来似乎更安全。
当你的工作成果已经完成,你想要将变更推送到远程仓库去,你可以使用git push [remote-name] [branch-name]
,将其提交推送给远程仓库。
当然这只会推送你已经 commit的数据。
上述命令的能够正常推送的前提是你必须有工作的写权限。而且你的版本必须是远程仓库的最新版本,意思就是在推送之前你必须先拉取别人的变更,将其整合都你的工作之中。否则会有以下提示:分支落后
要查看关于某一远程仓库的更多信息,可使用git remote show [remote-name]
命令。比如我查看远程仓库 gs(上面的简短命名)
git remote show gs
上面的命令列出了远程仓库的URL地址以及每个分支的跟踪信息。
可以使用git remote rname
来重命名远程仓库。比如把gs重命名为gst。
git remote rename gs gst
上述命令也会改变远程分支的名字,gs/master -> gst/master。
如果需要删除某个远程仓库地址,就可以使用git remote rm
命令。
Git可以将重要的历史版本标记为重要版本。比如说标记出发布版本(v1.0)。
只需要输入git tag
即可
这条命令会按字母列出所有的标签。顺序与重要性无关。当然你可以加上-l
选项来搜索特定匹配模式搜索标签。
git tag -l "v1.*"
这会列出说有v1.开头的标签。
标记主要分为两种:轻量标签、注释标签
轻量标签:只是一个指向某次提交的指针
重量标签:作为完成的对象存储在Git数据库中,会有校验和、标记者名字等其他信息。
创建注释标签只需要带上 -a
选项即可。
git tag -a v1.0 -m "my version v1"
-m
选项指定了标记信息。
可以使用 git show
命令查看标签数据对应的提交。
轻量标签的创建,即使用不带额外选项的创建。
git tag v1.1-lw
你可以给历史版本添加标签只需要在后面加上检验和即可
git tag -a v1.2 6ebd28670
将标签推动到远程服务器上。可以使用git push origin [tagname]
如果你要推送所有的标签可以将[tagname]
改为--tags
选项
这样别人也可以得到所有的标签。
标签无法移动,所以无法真正检出标签,我们可以特定标签上创建一个新的分支。
可以使用 git checkout -b [branchname] [tagname]
如果你输入的命令不完整,Git是不会执行命令的,Git不会自动推断并补全命令,如果你不想输入完整的命令,那么我们可以轻松地通过git config
设置每个Git命令的别名。比如:
git config --global alias.ci commit
这行这个命令之后你就可以使用git ci
来替代git commit
。
笔记GIt仓库地址:笔记仓库地址 当前正在更新中