热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Window下使用Git小记

一、安装必要客户端1.TortoiseGithttp:tortoisegit.googlecode.comfilesTortoiseGit-1.0.2.0-32bit.msi

一、安装必要客户端

1. TortoiseGit

   http://tortoisegit.googlecode.com/files/TortoiseGit-1.0.2.0-32bit.msi

下载安装后,重启系统。

2. 安装 msysgit

   a. 从 http://msysgit.googlecode.com/files/Git-1.6.2.1-preview20090322.exe 下载并安装;

3. JGit/EGit plug-in for Eclipse 3.5

   a. 菜单 -> Help -> Install New Software -> "Add" Button;

   b. "Add Site" 

      Name     : jgit Location

      Location : jgit - http://www.jgit.org/updates

选择最新版本(目前是 0.5.0.200908282229)安装之;

   c. 重启 Eclipse

=============================================================================

二、在服务器上建立公共库 并提交第一个项目

说明中省略了在提示框填写密码的步骤。

1. ssh 到服务器,假设当前目录为你的帐户根目录;

2. 在服务器上建立公共库

      $ mkdir gitdemo.git  #仓库名称为 gitdemo.git

      $ cd gitdemo.git

      $ git --bare init --shared #建立裸库,且为 group 共享模式

刚刚创建的 Git 仓库是没有任何分支的,因此也没有 clone 的意义。

所以我们需要向新的仓库上传一些东西,以初始化仓库。

3. 管理员添加公共库的第一个项目

我将在 D:\ 目录下开始所有操作。

   a. 建立本地 Git 仓库的文件夹 AndroidSpace

建议如没有特殊需要,此处不要在 Eclipse 的 workspace下建立仓库目录,

也不要将 workspace 作为仓库目录,否则会使得环境过于复杂,可能造成不必要的麻烦。

最好在与 workspace 同目录下建立仓库目录,例如 AndroidSpace。

也就是说 AndroidSpace 是本地的一个 Git Repository,同时也被当作是 Eclipse 的一个

工作空间,当然它并不是真正你设置的 workspace。

   b. 进入 AndroidSpace 目录,右键点击显示菜单,选择 "Git create repository here",

将会建立一个 .git 目录,此时 AndroidSpace 已经成为一个本地 Git 仓库。

   c. 这里需要手动添加 ".gitignore 文件,以过滤不需要进行版本控制的文件。

方法:

在 AndroidSpace 仓库中新建一个文本文件,如叫 ignore.txt;

向其中添加需要过滤的文件名称的匹配字符,如:

      */bin/*

      */gen/*

添加完毕后保存关闭,在 cmd 窗口,执行以下命令:

      D:\AndroidSpace>ren ignore.txt .gitignore

将 ignore.txt 改名为特定的 .gitignore 文件,直接 F2 重命名在 windows 是不允许的。

   d. 此时使用 Eclipse 建立一个 Android 工程(你也可以用别的)。

注意将目录定位到 AndroidSpace中(你刚才创建的 Git 本地库)。

   c. 此时,Test 项目文件夹及内部各文件都会标有一个大大的问号。

右键点 Test 项目 -> TortoiseGit -> Add... -> 确认要 add 的文件 -> OK;

   d. 此时,Test 项目文件夹及内部不被过滤的文件都会标有一个大大的十字。

右键点 Test 项目 -> (Git commit -> "master") -> 写 comment 以及确认要提交的文件 -> OK ->

完毕后有两个 button : Close 和 Push。

如果 Close 则直接关闭对话框。

如果 Push,则会弹出 Push 对话框,以便将当前分支同步到服务器公共库上。在对话框中填写:

Local:master | Remote:master

Destination: 如果是第一次配置,需要点击 Manage button,打开 Settings 对话框,

右侧面板中填写

Remote:origin | Url: username@server_ip:your_account_dir/gitdemo.git

拷贝一下Url。

点击 "Add New" -> 点击 "应用"。

回到Push对话框,此时 origin 并不会自动显示,你需要选择 Arbitray URL再次填写

一遍 刚才的 Url(下次打开时就会有 origin) 了。

点击“OK”,push 操作完成。

(你也可以 右键点 Test 项目 -> TortoiseGit -> Push... 打开Push对话框。)

此时,Test 项目文件夹及内部不被过滤的文件都会标有一个大大的对号。

   e. 此时在服务器的公共库目录下 使用 git log 命令,可看到刚刚 push 的项目日志。

这样公共库的建立及第一次初始化操作完毕(图 Tor 1, Tor 2)。

   f. 用同样的方法可将之前创建的 .gitignore 文件上传,不妨试一下。

三、从已建立好的公共库上 clone 项目

1. 在 AndroidSpace 同目录下,右键 -> Git clone -> Git clone 对话框,填写 Url 和 Directory,

   Url: username@server_ip:your_account_dir/gitdemo.git。

点击 “OK”,完成 clone。

此时,你可以在 Eclipse 中导入这个新建库中的 Test 项目。就像“Windows XP 下使用 Git 小记 (二)”一样。

四、进行一次两个客户端的同步

这里,由于我是在一台机器上进行操作,所以不能起同样的项目名称,我的当前环境如下:

(你可以将 Eclipse 中的项目删除,重新导入,并分别重命名为 Test1 Test2)

D:/AndroidSpace/Test    导入为-->  Eclipse Test1

D:/AndroidClient/Test   导入为-->  Eclipse Test2

      AndroidSpace 和 AndroidClient 为前述中提到的两个本地 Git Repository, 在服务器上有我们的公共

      Git 库 gitdemo.git。

现在要做的就是,修改 Test1 中的 Test.java 文件,提交修改,并同步到 gitdemo.git,Test2 再与

      gitdemo.git 同步,获取最新的 Test.java 文件的修改。

在将 Git 中的项目导入到 Eclipse 中时,Eclipse 会修改项目目录下的 .classpath 文件,没有关系,

它看起来似乎只是调换了一下里面的内容。把它当作一个普通文件就好了。

1. 打开 Test1 项目的 Test.java 文件,添加如下代码:

private static final String TAG = "Test";

...

setContentView(R.layout.main);

        Log.v(TAG, "Test Message");

...

2. 保存修改后,(不是在 Eclipse 中)右键点击 Test.java -> (Git commit -> "master")

-> 填写 comment,确认要更改的文件,并点击“OK”提交 -> Close;

3. 右键 Test.java -> TortoiseGit -> Push... -> 填写字段 -> OK,push完毕。

可以在服务器端 git log 看看日志。

4. 下面对 AndroidClient 进行一下同步。

右键 AndroidClient -> Git Sync... -> Git Synchronization 对话框 -> 填写表单 ->

点击“Pull”按钮 -> 就会显示出同步结果。

我的有两个: add .gitignore 和 modify Test.java,如果没有冲突,将会自动合并,

如有冲突,那就先解决冲突,再提交修改。

=================================================================================

实际使用的情况会更负责,比如 push 时,一般都需要先 pull 一下,否则如果公共库相对你

的本地库有修改,那 push 操作会失败。

********************************************************************************

TortoiseGit 功能十分强大,而且十分人性化,

需要在使用的过程中不断磨合。clip_image001clip_image002

clip_image003

clip_image004

clip_image005


推荐阅读
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • iOS Swift中如何实现自动登录?
    本文介绍了在iOS Swift中如何实现自动登录的方法,包括使用故事板、SWRevealViewController等技术,以及解决用户注销后重新登录自动跳转到主页的问题。 ... [详细]
  • 解决github访问慢的问题的方法集锦
    本文总结了国内用户在访问github网站时可能遇到的加载慢的问题,并提供了解决方法,其中包括修改hosts文件来加速访问。 ... [详细]
  • 本文详细介绍了git常用命令及其操作方法,包括查看、添加、提交、删除、找回等操作,以及如何重置修改文件、抛弃工作区修改、将工作文件提交到本地暂存区、从版本库中删除文件等。同时还介绍了如何从暂存区恢复到工作文件、恢复最近一次提交过的状态,以及如何合并多个操作等。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • C# WPF自定义按钮的方法
    本文介绍了在C# WPF中实现自定义按钮的方法,包括使用图片作为按钮背景、自定义鼠标进入效果、自定义按压效果和自定义禁用效果。通过创建CustomButton.cs类和ButtonStyles.xaml资源文件,设计按钮的Style并添加所需的依赖属性,可以实现自定义按钮的效果。示例代码在ButtonStyles.xaml中给出。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • IOS开发之短信发送与拨打电话的方法详解
    本文详细介绍了在IOS开发中实现短信发送和拨打电话的两种方式,一种是使用系统底层发送,虽然无法自定义短信内容和返回原应用,但是简单方便;另一种是使用第三方框架发送,需要导入MessageUI头文件,并遵守MFMessageComposeViewControllerDelegate协议,可以实现自定义短信内容和返回原应用的功能。 ... [详细]
  • 本文介绍了如何在Azure应用服务实例上获取.NetCore 3.0+的支持。作者分享了自己在将代码升级为使用.NET Core 3.0时遇到的问题,并提供了解决方法。文章还介绍了在部署过程中使用Kudu构建的方法,并指出了可能出现的错误。此外,还介绍了开发者应用服务计划和免费产品应用服务计划在不同地区的运行情况。最后,文章指出了当前的.NET SDK不支持目标为.NET Core 3.0的问题,并提供了解决方案。 ... [详细]
  • 最近在使用C#进行录屏,通过调用ffmpeg的cmd命令进行录制。设置的录制时长是30秒,但实际只录制了11秒就停止了。关闭程序后,又开始录制并成功录制了30秒。请问大神,这是什么原因?附上了简单的调用程序。 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • 现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ... [详细]
author-avatar
前方体育538
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有