目录

  1. 工具
  2. 安装事项
  3. 本地密码保存
  4. Git常用使用操作
  5. 如何管理我们的版本及分支

工具

开源的一款版本控制器Git深受大家喜欢。下面我归纳下用Git开发需要哪些东西。

客户端:

1、msysgit 是Window平台下的功能软件

下载地址 https://code.google.com/p/msysgit/downloads/list?q=full+installer+official+git

2、Tortoisegit 是一款git客户端管理工具。

下载地址 https://code.google.com/p/tortoisegit/wiki/Download?tm=2

3、Git Extensions 是一款git版本控制器插件,它提供一个图形用户界面给用户操作。

下载地址 https://code.google.com/p/gitextensions/

4、Git Source Control Provider 是给vs 2010及以上版本的一款git插件

下载地址 http://visualstudiogallery.msdn.microsoft.com/63a7e40d-4d71-4fbb-a23b-d262124b8f4c

服务器:

如果想把自己的服务器作为版本控制的服务器。下面有两片文章供大家参考

英文 http://docs.nuget.org/docs/creating-packages/hosting-your-own-nuget-feeds

中文 http://www.cnblogs.com/dudu/archive/2011/06/24/git_on_windows.html

 

git 文档及书

Git Community Book: http://gitbook.liuhui998.com/index.html

Git Command 指令文档:http://www-cs-students.stanford.edu/~blynn/gitmagic/intl/zh_cn/index.html

 

安装事项

在安装msysgit的时候,因为Window(CRLF)和Linux(*nix)平台的换行符不一样,会导致我们提交到服务器会改变我们代码中的换行符。这里在安装的时候 选择Checkout as-is,commit as-is.

2012-01-10_175618

 

本地密码保存

Git 客户端本地密码保存。

在每次得或者提交到服务器都要提示输入账号和密码。为了减轻负担把账号和密码存到本地。

1. 在Windows中添加一个HOME环境变量,值为%USERPROFILE%,如下图:

2011070615112192.jpg

2. 在“开始》运行”中打开%Home%,新建一个名为“_netrc”的文件。

3. 用记事本打开_netrc文件,输入Git服务器名、用户名、密码,并保存。示例如下:

 

machine  提交到服务器的网址(不需要端口号)

login 用户名

password  密码

 

Git常用使用操作

一、命令操作:

1、git branch   查看本地分支

2、git branch -r  查看远程分支

3、git status   查看哪些文件被提交(commit)了,哪些文件没有提交,哪些文件修改了。

4、git commit -a 提交修改的文件,这时候会跳出vim编辑器,不建议使用。git commit -a -m 全部提交。

5、gitk          提交后可以通过这个命令查看本地文件提交后的所有信息。

6、git checkout XXX  切换到某分支(XXX)

7、git branch -d XXX  删除本地的某个分支(小写d改成大写D是强制删除)

8、git merge XXX   合并分支

9、git reset --hard HEAD   当合并分支后,想放弃合并后的操作。此操作回到了合并前的状态。

10、git log 查看当前分支的日志(加 --stat 是哪些文件被修改了,哪些文件新增或删除。--pretty格式化日志,比如 --pretty=short)

11、git diff 比较当前本地工作目录和上次提交的这个本地目录的差别。 git diff XXX 是和某个分支的差别。git diff --cached 是当前的索引和上次提交的差异。git diff XXX --./lib 和某个分支下的lib目录下的文件的差异。git diff --stat 查看当前分支哪些文件改动了。(按Q键退出查看差别。)

12、git pull  得服务器上这个分支的最新数据(这里做了两个操作,一个是得,一个是merge),git pull XXX  得某个分支的数据。一般的做法是先 git fetch XXX 然后查看本地的和刚取得的数据的比较 git log -p XXX 检查完毕,然后在git merge XXX

13、git stash 当我们在这个分支上做了一些操作,这时候要修改上个提交版本的bug,而不想提交当前修改的操作,用git stash 缓存起来,且它会自动回到上次commit的版本。

14、git push 把我们本地已经Commit后的版本提交到服务器。如果服务器上的版本和本地(已经Commit)本版不相同,则会提示先pull 在push提示。当服务器上的某个文件已经被被人改动过了,这时我也改动过,则会提示合并冲突操作。git 以

++<<<<

++====

>>>>++

来区别冲突位置在文件中。也可以强制push 只要在分支前面加“+”命令为: git push +XXX(分支)

15、git tag XXX   给当前要提交的版本一个标签。XXX是标签名称。

16、git rebase 远程分支      把当前分支commit的操作取消,加到远程分支上。如下图:

rebase前:

image.axd?picture=2012%2f3%2frebase%e5%89%8d.png

Rebase后:

image.axd?picture=2012%2f3%2frebase%e5%90%8e.pngimage.axd?picture=2012%2f3%2frebase%e5%90%8e2.png

没有rebase,而是我们直接pull(默认做merge操作),图为:

image.axd?picture=2012%2f3%2fmerge.png

rebase的时候也少不了有冲突的可能性。有冲突时,rebase会停止。解决冲突完之后,继续rebase。 git rebase --continue

如果想在rebase过程中对一部分提交的操作进行更改。在命令中加 "i" git rebase -i XXX(远程分支)。

 

二、TortoiseGit工具技巧

1、在app.config文件下有连接字符串,如果每个人的连接到的数据库不同,那么提交到服务器,别人拿的话就会出现冲突。为了解决这个问题。可以假设我们本地额app.config没有改动,如下图形操作必须装 git extension插件

image

如果想保持和服务器上的版本一直,那么Reset这个文件。

Assume Unchanged命令是 git update-index --assume-unchanged <files>

取消命名是 git update-index --no-assume-unchanged <files>

如何管理我们的版本及分支

5488984404_4f693eec32_z.jpg

这张图可以很好的说明如何来管理版本分支。

更详细的请看这里

转载于:https://www.cnblogs.com/dingli/archive/2013/03/29/2988710.html

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐