Git

来源:互联网 发布:多核编程 编辑:程序博客网 时间:2024/05/22 08:04

Git是分布式版本控制系统。


文件:文本文件、二进制文件等;

要使用版本控制系统,必须以纯文本方式编写文件。

不要使用记事本编辑任何文本文件,建议使用Notepad++,要把Notepad++的默认编码设置为UTF-8 without BOM即可。


Unix的哲学是“没有消息就是好消息”。


1、In Action

(1)在Windows上安装Git

msysgit是Windows版的Git,从http://msysgit.github.io下载,按默认选项安装即可。


安装完成后,在开始菜单里找到Git——Git Bash,若出来一个类型命令行窗口的东东,就说明安装成功。


安装完成后,还需要最后一步设置,在命令行输入:

git config -- global user.name "your name"

git config -- global user.email "your email"

用--global这个参数,表示这台机器上所有的Git仓库都会使用这个配置,也可以对某个仓库指定不同的用户名和Email地址。


(2)创建版本库(即仓库)

a、创建一个空目录(不要包含中文);

b、git init——此命令表示将此目录变成Git可以管理的仓库;


(3)把文件添加到版本库

git add 文件名,可以反复多次使用,添加多个文件;

git commit -m "your comment":提交,-m后面是本次提交的说明。


1、TIPS

(1)集中式VS分布式

集中式:版本库是存放在中央服务器的。最大的缺点是必须联网才能工作。


分布式:没有中央服务器。每个人的电脑上都是一个完整的版本库。不需要联网。安全性更高,中央服务器坏了就无法用了,自己电脑坏了,还可以去其他人那里复制一个。

多人协作时,只需把各自的修改推送给对方,就可以互相看到对方的修改了。

其实很少在两人之间的电脑上推送版本库的修改,通常有一台充当中央服务器的电脑,这个服务器的作用仅仅是用来方便交换大家的修改


(2)

git diff 文件名:表示当前文件和提交到版本库中的文件的修改的区别,即查看修改内容;

然后git add 文件名,git commit -m "comment"进行提交即可。

git status:随时掌握工作区的状态。


git log:查看提交历史,以便确定回退到哪个版本;

HEAD指向的版本就是当前版本,git reset --hard commit_id:回退到此版本;

git relog查看历史命令,以便确定回退到未来的哪个版本;


git checkout -- filename:用版本库里的版本替换工作区的版本;

git rm 文件名,然后commit:从版本库中删除该文件;


(3)远程仓库
Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。最早肯定只有一台机器有一个原始版本库,此后,别的机器可以克隆这个原始版本库,而且每台机器的版本库都是一样的,没有主次之分。


由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,因此需要做一些设置。此处略。

添加远程仓库:
登录GitHub,创建一个新的仓库,把本地仓库与之关联(git remote add origin git@server-name:path/repo-name.git),然后把本地仓库的内容推送给GitHub仓库(git push -u origin master),此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改。

从远程库克隆:
首先登陆GitHub,创建一个新的仓库,勾选Initialize this repository with a README,这样远程库就准备好了;
使用git clone命令克隆一个本地库;Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。


(4)分支管理
Git无论创建、切换和删除分支,都能在1秒钟内完成。

创建分支:git branch 分支名;
切换分支:git checkout 分支名;
git branch——查看当前分支;
删除分支:git branch -d 分支名;
合并分支:git merge 分支名——表示将此分支名合并到master分支上;
当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。

合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fastforward合并就看不出来曾经做过合并。如:
git merge --no-ff -m "comment" 分支名; 


(5)标签管理




(6)GitHub

是一个免费的远程仓库(即一台运行Git的服务器),若是个人的开源项目,放到GitHub上完全没有问题。只需要注册账号,就可以免费获得Git远程仓库。


在GitHub上,可以任意Fork开源仓库;

自已拥有Fork后的仓库的读写权限;

可以推送pull request给官方仓库来贡献代码;


(7)搭建Git服务器


2、PS

(1)

(2)

0 0
原创粉丝点击