Git 是现实世界中最流行的代码版本控制软件
remote可以看做是一个人的电脑,假设有十个人合作,那么就有10个remote对象。为了方便大家同步,我们创建一个叫做origin的remote,大家都和这个origin同步,那么大家就可以达成一致了。
很多人的Git操作的第一句话是
git clone xxx
就是把位于xxx的一个remote拷贝到本地,这个remote我们叫做origin。至于自己的电脑,就没必要命名了,反正就自己一个人用。不过为了方便叙述,我们就叫它local好了。
最常见的情况是团队中的人都共用一个origin。如果自己想额外使用一个remote,也可以通过以命令增删:
git remote add name xxx
git remote remove name
大家可以试试以下命令:``
git remote # 查看有哪些remote,一般就一个,叫做origin
git remote remove origin # 删除,一般不用到
git remote add origin xxx # 新增,一般不用到。xxx 请用最开始的 git clone xxx 中的 xxx 替代
其实,一开始的 git clone xxx 命令,可以看做是一个复合命令,它做了两件事:第一,下载文件,第二,执行 git remote add origin xxx
git remote 命令在什么时候可以用到?我举一个我会用到的例子:
这里,A是从B fork过来的,两者之间可以同步。我的电脑local一般只与A同步。有的时候,为了与B直接同步,我可以
git remote add another B
这样,我就能通过 another 这个名字来与B直接进行同步了。
GitHub 拥有能够存储 git 仓库的服务器,他们的网站 GitHub.com 提供了一个方便的 Web 界面来查看仓库。
如何将仓库推送到github?
为了推送代码,我们将使用以下三个命令:
add
,push
,commit
第一种:
$ git remote add origin git@github.com:tjp2518/CS61B-21fall.git
$ git branch -M main
$ git push -u origin main
第二种:
$ git remote add origin git@github.com:tjp2518/CS61B-21fall.git
$ git status
$ git add lab1/* # 这里的lab1/*表示lab1下的所有文件 git add 后面的参数就是你选择要加入git版本控制的文件
即add标记文件作为你要备份的内容
$ git commit -m "done with Collatz" # commit以给定的信息创建一个备份
Git将记录您对Collatz.java的更改。它还将记录消息“done with Collatz”。如果您想在过去的某个时候找到特定的更改,这些消息可能会有所帮助。我们将在后来的实验室中进行进一步讨论。它还将打印一些输出终端,尽管插入和删除的数量可能有所不同
[master e2c138b] done with Collatz
1 file changed, 15 insertions(+), 1 deletion(-)
$ git push origin master # 注意这里的master要改成main,和官网教程不一样是可能是因为教程没跟新,因为之前github的主分支是master,后来改成了main
master 和 main都是是分支名字
如果commit做了一个备份但没有备份到github,那它在哪里备份了文件?
答:在电脑上
在自己的电脑上备份有什么好处?
答:如果想回到旧版本,可以使用git的其他命令。通过在本地存储备份,恢复旧备份非常快,并且不需要 Internet 连接。
如果我的电脑死机了怎么办,通过commit的备份不是丢失了吗?
答:是的,那就是后面为什么还有push
命令
为什么不将add``commit
和push
合成一个命令?
答:有时,您只想添加少量文件,因此您可以在最终进行commit
之前仅调用add
在这些文件。有时,您想进行commit
,但不想push
,例如,因为您没有互联网访问,或者是因为您正在处理太敏感的代码,无法放置在任何Internet网站上。