`
netcome
  • 浏览: 481861 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

15分钟学会使用Git和远程代码库

阅读更多

Git是个了不起但却复杂的源代码管理系统。它能支持复杂的任务,却因此经常被认为太过复杂而不适用于简单的日常工作。让我们诚实一记吧:Git是复杂的,我们不要装作它不是。但我仍然会试图教会你用(我的)基本的Git和远程代码库干活的工作步骤,在15分钟内。

工作步骤

我会展示以下的步骤,通常能帮我独自在一台或多台机器上做项目。

  1. 创建一个远程的空代码库(在BitBucket上)
  2. 在本地代码库添加一个项目
  3. 在分支上开发新功能
  4. a) 保留新功能 或者 b) 丢弃它们
  5. 也许,回到某个早先的时间点
  6. 将本地代码库推送到远程代码库
  7. 在另一台机器上取得远程代码库

安装Git

在大多数*nix系统(Linux、OS X)上,Git已经被安装了。你通过发送下面的命令,可以通过Git自身,把它更新到最新的的开发版本(不推荐)。

git clone https://github.com/git/git

在Windows上,你可以在这里下载Git的安装程序。如果你真的需要其他系统的安装程序,Mac OS X安装文件在这里,Linux的操作指导在这里

创建一个远程代码库

很多人喜欢用Github。我个人更喜欢BitBucket,因为它提供了不限制的私有代码库,那是我最需要的。你可以将下列指令转换到Github上,这些过程是相同的。

那么,去到www.bitbucket.org并注册一个账号。一旦完成,登录后点击最上方的“create(创建)”按钮。照着填写表格,勾选私有代码库。你可不想让其他人来偷窥你的Facebook的杀手级应用的源代码,对吧。

你现在可以离开BitBucket了,我们在已经有了所有那里需要的东西了。

 

设置Git

在我们能用Git工作之前,我们需要做个一次性的配置。为了Git能跟踪到谁做了修改,我们需要设置你的用户名。我强烈建议你使用与注册BitBucket账号相同的用户名和电子邮箱地址。发送这些命令,相应地替换掉其中的“your_username”和“your_email@domain.com”(注意引号):

git config --global user.name "your_username"

git config --global user.email your_email@domain.com

我们也会设定推送(push)的默认值为‘simple’。要了解这是什么意思,快速阅读我之前发布的关于推送的默认值(非必须)。发送这条命令:

git config --global push.default simple

我们都设好了。你无需在你的机器上再重复这些配置,但如果你在另一台机器上工作的话,不要忘记这些配置。如果你忘记做初始的配置,Git不会允许你提交任何东西,这会让你困扰。

 

创建一个本地代码库

作为例子,我们会假装我们有一个网站(无所谓技术)存在于我们机器上的‘workspace’文件夹下的’my_site’文件夹内。在命令行中,去到你的站点的根文件夹。在OS X和Linux上:

cd ~/workspace/my_site/

在Windows上:

cd c:\workspace\my_site

我们首先需要告诉Git这个文件夹是我们需要跟踪的项目。所以我们发送这个命令来初始化一个新的本地Git代码库

git init

Git会在my_site文件夹内创建一个名为.git的隐藏文件夹,那就是你的本地代码库。

 

加载(Stage)文件

我们现在需要命令Git我们需要加载(stage)所有项目文件。发送:

git add .

最后的“.”符号的意思是“所有文件、文件夹和子文件夹”。假如我们只想要把特定文件添加到源代码控制中去,我们可以指定它们:

git add my_file, my_other_file

 

提交文件

现在,我们想要提交已加载(staged)的文件。阅读“添加一个时间点,在这里你的文件处在一个可还原的状态”。我们提交我们的文件时,总是附带着有意义的注释,描述了它们现在的状态。我一直用“initial commit”来作为第一个提交的注释。

git commit -m "initial commit"

就这样。现在你随时都可以回滚到这个提交状态。如果你有需要检查你现在的已加载(staged)和未加载(unstaged)文件的状态、提交等,你可以询问git的状态:

git status

 

创建分支

建立分支是你创建代码的独立版本的动作,独立于你的主干分支。默认地,每次你提交到Git的文件都会被储存到“master(主干)”分支。

现在我们来说说,你想要向项目里添加一个功能,但你想要能够回滚到现在版本,以防出现差错,或者你决定要放弃这个功能。这就是你创建分支的时候了。创建并同时切换到你新建的分支,发送:

git checkout -b new_feature

或者,你可以先创建一个分支然后手动切换,就像这样:

git branch new_featuregit checkout new_feature

要看你现在项目下所有的分支,发送这个:

git branch

现在你可以在你的项目上无所顾忌地做任何你想做的:任何时候,你都可以回到你创建分支前的状态。注意,你同时可以有多个分支,甚至可以从一个分支上再创建一个分支。

 

合并分支

当你对你的新功能满意了的时候,你想要把它加到主干分支上。当你在你的新功能分支上时,你首先需要加载(stage)并且提交你的文件:

git add .git commit -m "adds my new feature"

然后你移到你的主干分支:

git checkout master

像这样合并:

git merge new_feature

此时,你的主干分支和你的新功能分支会变成一样的了。

 

丢弃分支

相反,如果你打算丢弃你在分支里做的修改,你首先需要加载(stage)你的文件并且在分支里提交:

git add .git commit -m "feature to be discarded"

然后,你移到主干分支:

git checkout master

现在,你的代码处于你创建分支之前的状态了。

 

删除一个分支

如果你要把你的分支合并到主干分支,从主干(master)分支上发送:

git branch -d new_feature

假如修改已经合并了,它只会删除分支。假如分支没有合并,你会得到一个错误信息。删除一个未合并的分支(通常你不想保留的修改),你需要发送一样的命令附带一个大写D。意思是“强制删除分支,无论如何我不想要它了。”:

git branch -D new_feature

 

回滚到之前的提交状态

在某些时候,你可能想要回到之前的代码版本。首先,你需要找到你想回到哪个版本。要看所有的完成了的提交,发送:

git log

这会输出你的提交的历史记录,像这样:

commit ca82a6dff817ec66f44342007202690a93763949Author: your_username your_email@domain.comDate: Mon Nov 4 12:52:11 2013 -0700 changes the frontpage layout

commit 085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7Author: your_username your_email@domain.comDate: Mon Nov 4 11:40:33 2013 -0700 adds my new feature

commit a11bef06a3f659402fe7563abf99ad00de2209e6Author: your_username your_email@domain.comDate: Mon Nov 4 10:37:28 2013 -0700 initial commit

如果你想回到“adds my new feature”这个提交,简单地用提交的ID做签出(checkout)(我通常只用到ID开头的9个字符)

git checkout 085bb3bcb

你也可以签出到一个新的分支,像这样:

git checkout -b my_previous_version 085bb3bcb

只是别太疯狂了!你的分支越复杂,就越难确定你真正在做什么。

 

推送到远程代码库

在第一次你想推送一个本地代码库到远程代码库时,你需要把它添加到你的项目配置里。像这样做:

git remote add origin https://your_username@bitbucket.org/your_username/name_of_remote_repository.git

注意这里的“origin”只是一个习惯。它是你的远程代码库的别名,但是你可以用其他任何你喜欢的词。你甚至可以有多个远程代码库,你只需要给它们起不同的别名。

之后,你想要推送你的本地代码库的主干分支到你的远程代码库:

git push origin master

如果你使用Bitbucket,在这时,你会被请求输入你的密码。照做,你的本地代码库会被推送到你的远程代码库上。

 

取得远程代码库的一份本地拷贝

如果你还没有一份远程代码库的本地版本(例如,如果你在另一台机器上开始工作,这台机器上还没有用过这个项目),你首先需要拷贝(clone)它。去到你的代码库想要拷贝到的文件夹下,并发送:

git clone https://your_username@bitbucket/your_username/name_of_remote_repository.git

另一方面,如果你已经在本地的项目上工作了,只是想从远程代码库上取得它最新的版本,移动到项目的根目录下,并发送:

git pull origin master

 

别名

Git允许你为你常用的命令创建快捷方式(别名)。例如,如果你不想每次都输入git commit -m “some comment”,而是输入git c “some comment”,你可以向你的git全局配置里添加一个别名来实现,像这样:

git config --global alias.c 'commit -m'

这是我使用的别名列表:

git config --global alias.c 'commit -m'

git config --global alias.co 'checkout'

git config --global alias.cob 'checkout -b'

git config --global alias.br 'branch'

git config --global alias.m 'merge'

git config --global alias.a 'add .'

git config --global alias.s 'status'

git config --global alias.dbr 'branch -d'

 

进一步

当然,还有比这些更多的Git内容。如果你想要更了解Git,我推荐官方文档和教程,你可以在http://git-scm.com/documentation找到。

有任何建议、技巧和问题?在下面留言!

 

原文链接: Nico 翻译: 伯乐在线 - cjpan
译文链接: http://blog.jobbole.com/53573/

3
0
分享到:
评论

相关推荐

    Git远程仓库的使用

    参与任何一个 Git 项目的协作,必须要了解该如何管理远程仓库。远程仓库是指托管在网络上的项目仓库,可能会有好多个,其中有些你只能读,另外有些可以写。...该文档很好的讲解了git的远程仓库的使用。

    git使用教程,学会使用git以及github远程仓库操作

    Git使用教程,学会使用git以及github远程仓库操作 本资源提供了一个详细的Git使用教程,涵盖了Git的基本概念、安装、配置、创建本地仓库、关联远程分支、删除远程分支关联、删除分支、git stash、git reset、git ...

    git自动更新远程仓库工具

    Git是世界上最流行的分布式版本控制系统,它允许开发者跟踪和管理代码变更。在开发团队协作中,保持本地仓库与远程仓库同步是非常关键的。"git自动更新远程仓库工具"就是为了解决这个问题而设计的,它可以帮助开发者...

    linux添加远程仓库,Git创建远程仓库实例.docx

    Linux 添加远程仓库是指在 Linux 系统上使用 Git 创建一个远程仓库实例,用于存储和管理代码仓库。下面是创建远程仓库的思路和步骤: 一、远程仓库所需要的指令 在使用 Git 创建远程仓库之前,需要了解一些基本的 ...

    Git如何修改远程仓库地址

    当远程仓库的服务器IP地址发生变化时,例如因为公司网络调整或者迁移服务提供商,我们需要更新本地仓库与远程仓库的关联地址,以确保能正常地推送和拉取代码。本文将详细介绍四种方法来修改Git的远程仓库地址。 1. ...

    初学者必看,git同步本地代码到远程仓库

    现在,如果你的本地 `test` 文件夹是空的,你可以使用 `git pull --rebase` 来获取远程仓库的最新代码。这一步会将远程仓库的代码合并到本地仓库,但请注意,如果本地有文件,这可能会覆盖它们: ```bash git pull ...

    遍历本地git仓库拉取更新代码

    面对100多个git仓库,手工同步更新是一件麻烦而痛苦的事情!可使用git脚本+定时任务,实现自动同步。解放自己,做更有意义的事情。 调用方法: sh /opt/git-repo-sync-script.sh /opt/GitRepoClone/

    Git远程仓库使用方法

    远程仓库是Git系统中不可或缺的一部分,它充当了集中式的代码存储和共享中心。本教程将详细讲解如何创建和使用Git远程仓库,以及进行相关操作。 **1. 创建远程仓库** 在进行远程仓库操作前,首先需要在代码托管平台...

    git工具下载更新代码

    Git是一种分布式版本控制系统,用于跟踪对软件项目中的文件和目录的修改。...总之,Git是软件开发中不可或缺的工具,通过学习和熟练掌握Git的使用,可以提高团队协作效率,保证代码的质量和版本控制。

    git 删除分支和回滚的实例详解

    git 删除分支和回滚的实例详解 【git 删除本地分支】 git branch -D br 【git 删除远程分支】 git push origin :br (origin 后面有空格) git代码库回滚: 指的是将代码库某分支退回到以前的某个commit id 【本地...

    git代码管理工具使用方法及常用配置

    在IT行业,学会使用Git进行代码管理是基本技能之一,本知识点将详细介绍Git的安装、常用命令、远程仓库配置以及一些常见问题的处理方法。 首先,安装Git工具。可以通过命令行使用包管理器进行安装,如Debian或...

    gitblit及使用教程

    Gitblit是一款开源的、专为Git版本控制系统设计的轻量级...通过这个教程,你将能够成功地搭建和使用Gitblit,管理你的Git仓库,提升代码协作的效率。记得在实践中不断探索,利用Gitblit的全部功能来优化你的工作流程。

    Git远程版本库idea

    通过上述步骤,我们可以熟练地在IDEA中集成并使用Git进行版本控制,包括创建远程仓库、初始化本地仓库、添加文件、提交更改、推送和拉取代码等操作。Git的强大之处在于它不仅能够帮助团队协作,还能有效地追踪代码的...

    硬件工程师使用git控制版本说明

    本文将主要介绍硬件工程师使用Git控制版本的说明,包括下载安装、软件说明、使用说明、配置远程仓库、Git的常用命令和工作方式建议、分支的使用、查看修改的历史等。 一、下载安装 Git可以从官网下载,下载地址为...

    完全学会GIT+GITHUB+GIT+SERVER的24堂课

    开发者常使用`git pull`和`git push`同步本地和远程仓库。`git pull`合并远程更改,`git push`将本地更改推送到远程。 以上是对Git、GitHub和Git Server基本知识的概述。通过24堂课的学习,你将能够熟练掌握这些...

    如何使用Git 和 Coding

    Git和Coding是现代软件开发中不可或缺的工具,用于版本控制和协作。Git是一个分布式版本控制系统,而Coding则是一个集成了代码托管、项目管理、质量管理等功能的云端开发平台。本资源旨在帮助用户熟悉如何安装Git,...

    在TwinCAT3中使用Git进行版本管理-整理版 1

    在 TwinCAT3 中使用 Git 进行版本管理,主要包括以下几个部分:Git 的下载和安装、将 TC3 工程中的 PLC 部分添加到本地仓库、使用 Git 进行版本管理、连接远程 GitHub 上传代码。 Git 的下载和安装 ---------------...

    git客户端、服务端安装、代码上传和eclipse安装git插件

    git 客户端、服务端安装、代码上传和 Eclipse 安装 Git 插件... Git 客户端和服务端安装、代码上传和 Eclipse 安装 Git 插件是使用 Git 版本控制系统的基本步骤。通过这些步骤,可以实现版本控制、协作开发和代码管理。

    1分钟学会用git管理代码

    - 建立好服务器后,每个开发者可以在自己的机器上克隆远程仓库,并通过`git push`和`git pull`命令与远程仓库同步代码。 #### 六、案例演示 假设有一个项目位于`/home/runningon/project`目录下,按照以下步骤...

    git仓库迁移并保留commit信息(两种方式,亲测有效).7z

    公司要迁移git仓库,从仓库A迁移到仓库B,为了...第二种:通过添加多远程源,直接将代码从“仓库A远程源1“推送到“仓库远程源2”,此种方式更为简洁灵活(推荐使用) 以上两种方式本人都成功试验过,绝对有效!!!

Global site tag (gtag.js) - Google Analytics