做网络运营需要掌握什么,seo广州工作好吗,盐城做网站spider net,wordpress 统一身份认证大家好#xff0c;我是 17 。
本文详细介绍 git clone 命令的使用方法和应用场景。
为了讲述方便 git 版本 2.32.1。环境为 linux centos 7。
在讲具体的命令之前#xff0c;我们需要先看张图#xff0c;理解了这张图#xff0c;对于理解后面的命令会有帮助。 主要分三部…大家好我是 17 。
本文详细介绍 git clone 命令的使用方法和应用场景。
为了讲述方便 git 版本 2.32.1。环境为 linux centos 7。
在讲具体的命令之前我们需要先看张图理解了这张图对于理解后面的命令会有帮助。 主要分三部分远程仓库remote,本地仓库repository)和工作区workspace)。本地仓库和工作区之间还有一个暂存区index。
远程仓库remote作用是同步代码。每个成员把自己的代码 push 到远程仓库再从远程仓库 pull 来更新代码。
本地仓库repository)做为分布式管理仓库的特点每个本地仓库都拥有完整的代码和历史记录。保存记录的功能无需要联网可以先保存在本地。 执行 git commit 就是把代码提交到本地仓库。
工作区workspace)对应的是本地分支代码是我们平时写代码的地方。
暂存区index暂存区标记了当前工作区中那些内容是被 Git 管理的。git add会把内容加到暂存区。添加到暂存区不会有记录。我们的代码没有完成可以先暂存等差不多了再提交。
建立远程仓库
为了能方便练习最好能建一个远程仓库。
创建仓库
打开 https://gitee.com/projects/new gitee 的新建仓库页面
输入仓库名称 git-learn其它的都可以不填点下面的 “创建” 按钮。
新建成功后显示如下界面 点右边的复制按钮红框内的图标把地址复制下来,粘贴到 git clone 后面。
git clone gitgitee.com:iam17/git-learn.git首次执行的时候会问你
Are you sure you want to continue connecting (yes/no/[fingerprint])?输入 yes 回车拉取失败了。
fatal: Could not read from remote repository.因为我们用的是 ssh 方式所以需要把公钥放到 gitee 上面。
生成公钥很简单看这个 帮助页面
放好公钥后再次执行clone 命令
git clone gitgitee.com:iam17/git-learn.gitwarning: You appear to have cloned an empty repository.输出个 warning说 clone 了一个空的仓库这个不用管它本来就是空的。 你也可以用 github不过可能会不打开而且速度可能很慢。 git clone
执行 clone 命令默认会拉取远程仓库的所有内容。
git clone gitgitee.com:iam17/git-learn.gitclone 命令是一个复合命令相当于连续执行了下面三个命令。
git remote add origin gitgitee.com:iam17/git-learn.git
git fetch
git checkout master首先添加远程仓库 origin
origin 是约定俗成的远程仓库的默认名没什么特别的含意。如果不满意可以修改
git remote rename origin bananer 没有特别的原因这个名字最好别改。 然后从远程仓库拉取所有代码
所有远程分支在本地是只读的。可以查看已经拉取的远程分支
git branch --remote 或 git branch -r远程分支存放在位置在
.git/refs/remotes/origin/最后根据远程默认分支建立本地分支
远程分支是只读的不能修改。要想在本地修改需要建立本地分支。clone 命令默认会根据远程默认分支建立本地分支。 cat .git/refs/remotes/origin/HEAD输出ref: refs/remotes/origin/master确认远程默认分支为 master 后clone 命令接着建立本地 master 分支并和远程 master 分支做关联。
clone 命令完成后我们现在就可以在本地 master 分支修改提交最后执行 git push把 master 分支更新到远程仓库。git push 是省略写法。因为现在只有一个仓库本地 master 也只有一个远程跟踪分支。完整写法:
git push origin master:master执行 git push 这个简写命令如果失败请检查 git 配置 push.defaultsimple
git 的默认设置就是 simple。 如果没有动过就不用管它。查看 git 配置
git config --list修改远程仓库的其它分支
如果想修改其它远程仓库的其它分支怎么办很简单只需要一句命令
git checkout dev这个命令完成了两项工作。
建立本地分支 dev本地 dev 跟踪远程 dev
我们在本地分支 dev 下修改提交最后执行 git push,把 dev 分支更新到远程仓库的 dev 分支。 git checkout 的分支必须已经 fetch 到本地否则报错。可能得请先执行 git pull 新建远程仓库没有的分支
如果新建的分支远程仓库里没有需要先新建本地分支。
# 建立本地分支 feature
git checkout -b feature# 做修改提交到本地. git commit ...# 提交到远程会在远程新建 feature 分支
git push --set-upstream origin feature git push --set-upstream origin feature 有两个作用
让本地分支 feature 跟踪远程分支 feature。push feature 到远程远程仓库如果没有新建。
你肯定好奇如果远程仓库有 feature 分支会怎么样那肯定失败。如果远程仓库有 feature ,请按上面的 “修改远程仓库的其它分支” 的方案执行。 git ls-remote 这个命令直接访问远程仓库查看获得远程分支的完整列表。根据这个列表你就知道是新建还是修改了 按上面的方法来做无需自己去设置跟踪分支git 自动给你完成push 、pull 命令也会简化。虽然在技术可以从一个远程分支 check 出多个本地分支但在实操上不建议这么做。一个远程分支只 check 一个同名的本地分支。如果有多个任务同时进行可以从这个本地分支 check 出多个分支。任务完成所有分支合并到这个唯一本地跟踪分支由这个分支同步到远程仓库。
clone 整个仓库
clone 命令默认是 clone 整个仓库。虽然有两个参数可以 clone 部分仓库--depth 和 --single-branch 但是对于新手来说不要用这两个参数。因为设置这两个参数后 大概率会影响后面的正常使用。收益只是首次 clone 的时候快一些而已得不偿失。
如果仓库确实需要放很多很大的文件可以考虑用中央式版本管理系统比如 svn。
本文到这里就结束了谢谢观看。