git - 个人 GIT 仓库

标签 git organization

我在工作中使用 BitKeeper,我想在家里为自己做一个基本的代码备份(考虑到我很少备份)

//我以前从未使用过 git,所以我需要很多帮助

我认为在我的家庭服务器上有一个 git 存储库可能是个好主意,然后当我为学校、工作或个人编写代码时,我可以简单地从我的家庭服务器上克隆分支,然后在需要时将它们推回我完成了我的工作。

//如果这不是 git 的工作方式,或者我应该如何做,请纠正我

我已经在我的家庭服务器上安装了 git,现在想知道设置它的最佳方法,通过 ssh,git deamon ??

我服务器的 ssh 端口已经转发,我必须为 git 添加新端口吗?

最后,这个组织使用 git 是否有意义,或者是否有更好的产品适合我

谢谢

最佳答案

Git 非常适合版本控制和“备份”用途。如果您想从多台计算机访问文件,正如您所描述的,“启动并运行”Git 存储库的最轻松的方法是使用 Github.com。

Github.com 提供免费空间来托管公共(public) Git 存储库(它面向开源软件)。使用付费计划(每月 7 美元起),Git 将为您提供完全私有(private)的存储库空间,只有您(或您允许的人)可以访问。

否则,您可以自己在自己的服务器上安装 Git,在这种情况下,我建议您设置 SSH key 并通过 SSH 访问您的存储库(为了便于配置和安全)。在你的服务器上,你可以进入你想要存储你的 repo 的文件夹,并像这样设置一个“空”repo:

git init --bare

然后在本地,您可以通过向本地代码库添加 git“remote”来添加这个新存储库的位置:

git remote add origin ssh://myserver.com:/var/repos/my_repo.git

现在您有了一个“源”服务器,您可以随意将其推送到/从中 pull 出。

安装 Git

如果您使用的是 Windows,则应安装 msysgit并接受默认值(我喜欢启用将 Git 添加到我的右键单击上下文菜单的选项)。然后我使用 Git Bash 命令行实用程序来使用 Git,但它也带有一个基本的 GUI 工具。

如果您使用的是 Mac,则可以下载 Mac installer image并按照其说明进行操作。

如果您使用的是 Linux,则可以使用包管理器来安装 git。例如,在最新版本的 Ubuntu 上,您将运行:

sudo apt-get install git

使用 Git

有一个在线Git Bookgit man pages , 但这里有一些基础知识。

创建一个“启用 git”的文件夹:

git init

将此文件夹中的所有当前文件添加到 git 的版本控制中:

git add .

将这些文件提交到您本地的 Git“暂存区”:

git commit -m "My first commit message"

准备就绪后,您可以将这个本地暂存区推送到远程仓库,例如 github 或您自己的服务器(假设您已经有一个名为“origin”的远程设置,见上文):

git push origin master

这会将默认的“master”分支推送到您的远程仓库。如果您需要使用远程仓库主分支中的文件更新本地副本,请改用“pull ”:

git pull origin master

每当你做新的工作时,你都想创建一个分支并在那里工作,这样你就不会混淆 master 分支,这样你就可以在你知道它们正在工作时 merge 你的更改。所以……

要创建一个新分支并开始在其中工作,您可以“ checkout ”分支并同时使用以下命令创建它:

git checkout -b new_branch

当你在 new_branch 中完成后,再次检查 master 分支并 merge 你的更改:

git checkout master
git merge new_branch

如果您想在 merge 前查看两个分支的差异,请使用 git diff 命令:

git diff master new_branch

要查看所有提交的日志,请使用 git log:

git log

按“q”退出日志 View 。

在任何一天,这些都是我最常使用的命令。

关于git - 个人 GIT 仓库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4249974/

相关文章:

git - Git 如何决定冲突?

git - 备份git有没有并发问题?

java - 我如何在java中组织这个多边形列表以便它们易于使用?

XCode 7 - 如何重新排列源代码元素

c++ - 如何处理 CMake 中的子目录依赖关系?

css - 管理 CSS 爆炸

git - 你什么时候会使用 .git/info/exclude 而不是 ~/.gitignore (core.excludesFile) 来排除文件?

git-svn:如何通过 git 创建一个新的 svn 分支?

ruby - 命名空间如何在 Ruby 中工作?

python - 无法查看 Heroku 日志 - 无法读取未定义的属性 'run'