我已经创建了一个新的GitHub存储库。 工作目录和本地存储库让我很困惑。 在我自己工作时,我的东西都存在于工作目录中。 但是当与回购合作时,我应该检查我的东西。 但他们是一回事吗?或者他们应该分开。 然后如何将我的工作目录中的东西提交到我的本地仓库。 如何将我的本地仓库提交给远程仓库。 如何通过Git Bash做到这一点? 谢谢!
答案 0 :(得分:19)
工作目录是git控制下源文件的目录(在所有目录下的根目录下.git文件存在)。 Git正在跟踪工作目录和本地存储库之间以及本地存储库和(其中一个)远程存储库之间的差异。
要查看更改内容,请使用$ git status
。
要将更改(编辑和/或新文件)提交到本地存储库,请使用$ git add
然后$ git commit
。
要查看已提交的内容,请使用$ git log
。
然后,如果要将更改提交到远程存储库,请使用$ git push
。
注意打印的git命令,它通常包含建议做什么。
如果您正在使用GitHub,他们的帮助也很有用:pushing to a remote。
良好的基本信息也是in atlassian site。
例如:
假设您在JavaRepo目录中使用$ git init
启动了git存储库,并在那里使用$ git pull
或$ git clone
检查项目。然后JavaRepo应该包含.git文件(以及其他git点缀文件) - 您可以使用$ ls -a
进行检查。 这些文件本身就是local git repository,,无需区分'工作目录'和'本地存储库'目录。
因此,开始使用JavaRepo中的文件:假设您更改了文件example.java并创建了新文件example2.java。在JavaRepo(或其任何子目录)中执行 $ git status
。它应该显示:'modified:example.java','未跟踪文件:example2.java'。
使用带有这些文件的目录中的 $ git add example.java
和 $ git add example2.java
命令将文件添加到暂存区域。 (请注意, $ git add
既适用于已更改的文件,也适用于新文件。)
最后通过 $ git commit -m "example changes"
(-m保留消息 - 对提交的评论)提交文件。
$ git log
应该显示此提交。
答案 1 :(得分:4)
您的project folder的内容(在其中找到的文件夹和文件)由工作目录表示。
工作目录有点像工作台,在这里您可以处理文件(编辑文件,添加新文件,删除文件等)。
另一方面,.git folder(是一个隐藏文件夹)代表存储库。
在.git文件夹中,应提及两个“位置”,即临时区域(由索引文件表示)和提交历史记录(由对象文件夹)。
staging area 有点像草稿空间。每当您在工作目录中的一个或多个文件上完成处理后,都希望将它们复制到暂存区(使用git add
命令)。
一旦您要在暂存区的下一版本的项目中拥有所有要更新的文件,就可以将其保存在项目的下一版本中,称为 commit >。您可以使用git commit
命令来完成此操作。
commit 基本上是项目的一个版本,每个提交都有一个40个字符的哈希(40个字母和数字),并且该哈希就像是提交的名称,它是一个引用方式。
提交位于提交历史记录(对象文件夹)中。
因此,为了将文件添加到我们的存储库:
git add
命令)git commit
命令)This video?以视觉方式非常简单地说明事物(视频前后都有帮助!)??
答案 2 :(得分:1)
工作目录和本地存储库之间存在一层。这称为暂存区。 当您使用'git add'添加更改的文件时,更改首先存储在暂存区中以进行检查。 然后,您可以使用“ git commit”将更改从登台区域进一步推送到本地存储库。