分享

Git - 版本控制软件-yesblue77-ChinaUnix博客

 我哒炒鸡资料库 2015-04-27

Git 是一款免费的、开源的、分布式的版本控制系统。旨在快速高效地处理无论规模大小的任何软件工程。
每一个 Git克隆 都是一个完整的文件库,含有全部历史记录和修订追踪能力,不依赖于网络连接或中心服务器。
其最大特色就是“分支”及“合并”操作非常快速、简便。

官方网站为: http:///
可以下到最新版的, Windows, Linux版本和说明等。

github是开源软件存放的库,相当于源代码界的博客:),GitHub可以托管各种git库,并提供一个web界面。提供私有和共有2种方式。

安装 Linux

$sudo apt-get install git-core (可以使用git
$sudo apt-get install git-gui   (可以使用图形化工具gitk
$sudo apt-get install gitg       (可以使用图形化工具gitg, 比较好用一点

Windows

安装 msysGitTortoiseGit
msysGit 是windows版本,TortoiseGit是windows上的图形版本工具。
安装完以后,会在右键的菜单上出现, Git, 和 TortoiseGit。
msysGit的一些配置(主要是中文处理)
1,修改…/Git/etc/git-completion.bash
alias ls=”ls --show-control-chars --color=auto”
说明:可以正常显示中文文件名
2,修改…/Git/etc/inputrc
set ouput-meta on
set convert-meta off
说明:可以输入中文
3,修改…/Git/etc/gitconfig
[gui]
    encoding = utf-8
[i18n]
    commitencoding = GB2312
说明:因为在windows新建文件是GB2312的编码,所以得告诉Git,要不然会被当成默认的utf-8给送出去,而不能识别。
[User]
    name = xxx
    email = xxx@gmail.com

配置 git

配置文件在, /etc/gitconfig, ~/.gitconfig, .git/config下。
可以这样配置,如果添加'-global’选项,就会作为默认值。
$git config –global user.name “xxx”
$git config –blobal user.email “xxx@gmail.com

初始化一个新的git仓库

$cd myproject
$git init
现在有了空的git存储,'.git’目录。然后可以添加文件了,
$git add .
$git commit –m “initial commit”
有了一个完整的git存储后,就可以 git log来查看。
$git log

克隆一个git仓库

git可以通过很多的协议进行网络通信,其中有三个最主要的协议,分别是ssh,http,git(专职为git服务的协议)
不管使用何种协议克隆git存储,格式都是这样:'git clone uri'
git 方式:
$git clone git://github.com/xxx/hello.git
$cd hello
$git log

http方式:
$git clone http://github.com/xxx/hello.git
$cd hello
$git log

生成密钥

请确保私钥的安全,保护代码的安全。
$ssh-keygen –t rsa
一直回车,就行,将会生成两个文件,一个私钥(id_rsa),一个公钥(id_rsa.pub)
私钥保存在当前用户的.ssh目录下,公钥交服务器管理人员添加到服务器上。

工作流程

单人开发,
*修改文件
*提交更改 (git commit –a), #-a 的意思是git先将变更了的文件先载入(stage),然后提交
*重复
协作开发,
*修改文件
*查看变更
*载入变更
*提交载入的变更
*重复
*上传

分支和合并

查看现在的分支
$git branch
*master
可以看到目前只有一个分支,'master’, *代表我们目前工作在此分支上。
创建新分支
$git branch xxx_test
$git checkout xxx_test (切换到xxx_test分支)
这样,我们就不用担心在master分支上频繁的操作了。
合并分支
$git branch master
$git merge xxx_test

如果合并有冲突的话,那就打开文件,文件有有冲突的地方都标出来了,手工改写,然后保存,再重新载入。
$git add main.c
$git commit –am “fix confilect”
删除分支
$git branch –d xxx_test

标签

查看标签
$git tag
$git tag –l v1.0.* (可以使用通配符)
$git show v1.0
创建标签
有两种最主要的标签--轻量级标签(lightweight)和带注释的标签(annotated)。
#带注释的标签
$git tag –a v1.0 –m “version 1.0”
$git tag
共享标签
默认情况下,'git push'命令不会将标签上传到远程服务器上。为了共享这些标签,你必须在'git push'命令后明确添加-tags选项
$git push --tags

日志

显示补丁
$git log –p
查看统计数字
$git log --stat
查看分支拓扑图
$git log --pretty=oneline --graph
查看日期区间
$git log --pretty=oneline --before=”2011-1-1” --after=”2010-12-01”
查询作者
$git log --pretty=oneline --author=xxx_author

差异比较 使用gitk+meld
$git diff
$sudo apt-get install meld


常用命令

好多命令都可以用gitk, gitg在linux上实现。windows上的话,可以用图形版的。

git init 初始化 仓库
git add xxx_file 添加文件; add, mv, rm,
git add --all 添加所有新文件
git commit –am “comment” 提交
git log 查看信息
git clone xxx_url 克隆整个仓库
git branch 查看分支
git branch xxx_branch 创建分支
git checkout xxx_branch 切换到分支
git checkout xxx_filename 撤销未提交的修改
git merge xxx_branch 合并分支
git branch –d xxx_branch 删除分支
git pull 将远程仓库项目同步到本地
git push 将本地仓库项目同步到远程
git tag –l v1.0.* 查看标签
git show v1.0 查看v1.0版本信息
git tag –a v1.0 –m “v1.0” 创建标签
git push --tag 共享标签到服务器
git revert 还原最近一次的修改
git revert commit-id 还原指定版本的修改

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多