草庐IT

git基础:本地仓库创建和远程连接

ReturnTmp 2023-05-14 原文

1.创建本地git仓库并连接远程仓库

 

1.1设置git基本配置

git config --global user.name 用户名
git config --global user.email 用户邮箱
#查看配置
git config --list
#本地初始化git仓库
git init

 

 注意:初始化之后一定要commit一次后方可进行下面操作,如下为commit操作

touch readme.md
git add .&git commit -m valid

值得注意的是,倘若git项目下没有任何文件可以commit,那么这样子执行也是没有用的,所以我上面touch了一个文件,估计是初始的master对象为空无法根据master去创建新分支。究其原因,是由于刚创建的git仓库默认的master分支要在第一次有效的commit之后才会真正建立,否则就像你声明了个对象但没初始化一样。

注意:当你git init后即使显示你在master分支,但实际上你git branch -a后并没有找到master分支,可能是缓存的原因,可以git checkout master来切换到master分支,即可解决问题

1.2本地仓库连接远程仓库

将本地仓库连接远程仓库之前首先需要在自己的GitHub上创建一个study仓库

然后把本地的study仓库与远程仓库关联一下(请注意,一个本地仓库是可以关联多个远程仓库的)

#这里使用ssh连接为例,当然也可以使用http连接
git remote add origin git@github.com:ReturnTmp/study.git 
#查看远程仓库fetch和push地址
git remote -v
#最后查看本地分支和远程分支关联情况
git branch -vv

注意:在远程创建了一个新的分支dev,但是我在本地使用命令git branch -r查看远程的所有分支,没有这个新分支,我们需要去更新一下远程仓库在本地仓库的缓存,使用git fetch origin或者git remote update origin --prune命令更新,然后再查看git branch -r,就能看到更新啦

1.3仓库中增、删、查、改 提交文件操作的流程(工作区 —> 暂存区 —> git仓库) 

#查看文件工作区修改的状态
git status -s

#把工作区的文件放到暂存区
git add .  //将本目录下全部文件放入暂存区
git add 文件名 //放单个文件或文件夹
git add -A  //一次性的把仓库中的文件进行上传到暂存区

#暂存区的文件添加到git仓库
git commit -m 消息

#查看commit日志
git log

git log详细命令:git log 命令详解_RollingPin的博客-CSDN博客_git log命令详解 

有关分支的博客:git基础命令:分支命令详解_linux小百的博客-CSDN博客

提交简化操作

git commit -am '修改hello文件'
#等价于git add hello && git commit -m '修改hello文件'

注意:使用的前提是hello文件曾经被add过,也就是处于tranced状态 

撤销add操作

可以直接使用命令    git reset HEAD

这个是整体回到上次一次操作

绿字变红字(撤销add)

如果是某个文件回滚到上一次操作:  git reset HEAD  文件名

红字变无 (撤销没add修改)

git checkout -- 文件

由于一个本地仓库是可以关联多个远程仓库的,因此,可以设置多个「别名」分别指向不同的远程仓库(比如一个 GitHub、一个 GitLab、一个 Gitee),然后通过别名的方式方便、快速地拉取某个远程仓库的代码或者将代码推送至某个远程仓库。

# 添加 github 别名
$ git remote add github git@github.com:toFrankie/repo-demo.git

# 添加 gitlab 别名
$ git remote add gitlab git@gitlab.com:toFrankie/repo-demo.git

# 添加 gitee 别名
$ git remote add gitee git@gitee.com:toFrankie/repo-demo.git
  • 查看本地仓库关联的远程仓库信息,可以在 .git/config 文件或通过 git remote -v 命令查看。

添加远程分支后可以使用如下命令关联本地分支:

git branch --set-upstream-to=origin/master master(前面origin/master为远程分支名,后面master为本地分支名)

修改远端分支

一般我习惯先删后加的方式,如下

git remote rm origin                 //删除现在的仓库地址
git remote add origin url           //url为你要改的新地址

相关资料:细读 Git | 让你弄懂 origin、HEAD、FETCH_HEAD 相关内容 - 简书 

有关git基础:本地仓库创建和远程连接的更多相关文章

  1. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  2. ruby - 续集在添加关联时访问many_to_many连接表 - 2

    我正在使用Sequel构建一个愿望list系统。我有一个wishlists和itemstable和一个items_wishlists连接表(该名称是续集选择的名称)。items_wishlists表还有一个用于facebookid的额外列(因此我可以存储opengraph操作),这是一个NOTNULL列。我还有Wishlist和Item具有续集many_to_many关联的模型已建立。Wishlist类也有:selectmany_to_many关联的选项设置为select:[:items.*,:items_wishlists__facebook_action_id].有没有一种方法可以

  3. ruby - 无法在 60 秒内获得稳定的 Firefox 连接 (127.0.0.1 :7055) - 2

    我使用的是Firefox版本36.0.1和Selenium-Webdrivergem版本2.45.0。我能够创建Firefox实例,但无法使用脚本继续进行进一步的操作无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055)错误。有人能帮帮我吗? 最佳答案 我遇到了同样的问题。降级到firefoxv33后一切正常。您可以找到旧版本here 关于ruby-无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055),我们在StackOverflow上找到一个类

  4. ruby - 是否可以覆盖 gemfile 进行本地开发? - 2

    我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI

  5. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

  6. 软件测试基础 - 2

    Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功

  7. git使用常见问题(提交代码,合并冲突) - 2

    文章目录git常用命令(简介,详细参数往下看)Git提交代码步骤gitpullgitstatusgitaddgitcommitgitpushgit代码冲突合并问题方法一:放弃本地代码方法二:合并代码常用命令以及详细参数gitadd将文件添加到仓库:gitdiff比较文件异同gitlog查看历史记录gitreset代码回滚版本库相关操作远程仓库相关操作分支相关操作创建分支查看分支:gitbranch合并分支:gitmerge删除分支:gitbranch-ddev查看分支合并图:gitlog–graph–pretty=oneline–abbrev-commit撤消某次提交git用户名密码相关配置g

  8. ES基础入门 - 2

    ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear

  9. ruby - 我的 Ruby IRC 机器人没有连接到 IRC 服务器。我究竟做错了什么? - 2

    require"socket"server="irc.rizon.net"port="6667"nick="RubyIRCBot"channel="#0x40"s=TCPSocket.open(server,port)s.print("USERTesting",0)s.print("NICK#{nick}",0)s.print("JOIN#{channel}",0)这个IRC机器人没有连接到IRC服务器,我做错了什么? 最佳答案 失败并显示此消息::irc.shakeababy.net461*USER:Notenoughparame

  10. ruby-on-rails - 连接字符串时如何在 <%=%> block 内输出 html_safe? - 2

    考虑一下:现在这些情况:#output:http://domain.com/?foo=1&bar=2#output:http://domain.com/?foo=1&bar=2#output:http://domain.com/?foo=1&bar=2#output:http://domain.com/?foo=1&bar=2我需要用其他字符串输出URL。我如何保证&符号不会被转义?由于我无法控制的原因,我无法发送&。求助!把我的头发拉到这里:\编辑:为了澄清,我实际上有一个像这样的数组:@images=[{:id=>"fooid",:url=>"http://

随机推荐