1. 安装
# apt-get install git git-core
2. 客户端使用
2.1. 导出版本
2.1.1. 获取一个版本
1.5版本
# git-clone ssh://172.16.10.210/usr/local/src/share/chui/android/git/mydroid_1.5
1.0版本
# git-clone ssh://172.16.10.210/usr/local/src/share/chui/android/git/cupcake
或
# git-clone root@172.16.10.210:/usr/local/src/share/chui/git/gittest
--origin
-o
Instead of using the remote name origin to keep track of the upstream repository, use .
2.1.2. 更新版本库
# git-fetch[微软用户1]
git-pull
2.2. 添加文件
# git-add filename
…
Files to add content from. Fileglobs (e.g. *.c) can be given to add all matching files. Also a leading directory name (e.g. dir to add dir/file1 and dir/file2) can be given to add all files in the directory, recursively.
2.3.1. 远处提交
// 把本地仓库提交到远程仓库的master分支中
# git push ssh://172.16.10.210/usr/local/src/share/chui/git/gittest
2.3.2. 本地提交
通过 git-commit 命令来提交:
-a (or --all )
Tell the command to automatically stage files that have been modified and deleted, but new files you have not told git about are not affected[微软用户3] .
# git-commit -a -m[微软用户4] "Initial commit of gittutor reposistory"
2.4. 查看版本差异
既然我们刷新了 Git 的跟踪信息,现在我们看看版本库的状态:
Show the working tree status
# git-status[微软用户5]
git-diff [微软用户6] 命令将比较当前的工作目录和版本库数据库中的差异。现在我们编辑一些文件来体验一下 git 的跟踪功能。
Show changes between commits, commit and working tree, etc
# echo "It's a new day for git" >> hello
# git-diff
2.5. 查看版本历史
查看修改、提交记录
# git-log
2.6. 更新某个分支或标签
Checkout a branch or paths to the working tree
# git-checkout -f
-b
Create a new branch named and start it at ; see git-branch(1) for details.
3. 服务器端使用
3.1. 创建版本库
创建一个版本库git-init-db
$ mkdir gittutorcn
$ cd gittutorcn
$ git-init-db
3.2. 标签操作
3.2.1. 查看所有标签
git-tag -n
3.2.2. 创建标签
git-tag tag_name -m “xxx”
3.2.3. 删除标签
git-tag -d tag_name
3.3. 分支操作
3.3.1. 分支创建
# git-branch branch-name
3.3.2. 分支删除
# git-branch -D branch-name
3.3.3. 分支变动查看
# git-show-branch
# git-whatchanged
3.3.4. 分支比较
# git-diff branch_name1^ branch_name2
# git-branch
3.4. 版本回退
git-reset
--mixed
Resets the index but not the working tree (i.e., the changed files are preserved but not marked for commit) and reports what has not been updated. This is the default action.
--soft[微软用户8]
Does not touch the index file nor the working tree at all, but requires them to be in a good order. This leaves all your changed files "Changes to be committed", as git-status would put it.
--hard
Matches the working tree and index to that of the tree being switched to. Any changes to tracked files in the working tree since are lost.
3.5. 版本合并
现在转移我们当前的工作分支到 master,并且将 robin 分支上的工作合并进来
# git-checkout master
# git-merge -m "Merge work in robin" HEAD [微软用户9] robin
或者将某个branch合并到当前分支中
# git-merge -m "Merge work in robin" robin
index
[微软用户10]
git-clone ssh://172.16.8.107/usr/local/src/share/chui/android/git/mydroid_1.5
# git-clone ssh://10.10.10.210/usr/local/src/share/chui/android/git/mydroid_1.5
# git-branch -r
# git-checkout origin/rkdroid
# git log
Checkout
某个分支,加参数-o
# git-branch $(newBranch)
将客户机上的分支mybranch提交到服务机(ssh://172.16.10.210/usr/ … /mydroid_1.5)上的新分支rockchip上。
git push ssh://10.10.10.210/usr/local/src/share/chui/android/git/mydroid_1.5
$(newBranch):rkdroid
将本地分支递交到服务器端分支上
git push origal local_branch:remote_branch
将当前版本提交到remote机器上的mybranch分支上(新建的),
git push rockchip mybranch
删除文件
在使用Svn rm删除一个目录的时候,因为每个目录下都存在.svn目录,记录了这个目录于服务器端仓库相关的信息,所以在commit之前,目录里的其它文件会被删除,但是目录及其子目录并不会被真正删除,只有commit以后,目录才会被删除。
在git中,同样,使用git rm 删除文件。但是git对目录的处理有些奇怪,如果某个目录下的所有文件都被删除以后,该目录就会被自动删除,也就是说你无法保留一个空的目录。你也无法添加一个空目录到仓库里。也就是说git 自动忽略空目录,不知道这样做的目的是什么?
[微软用户1]Fetch后需要checkout,才会将working tree更新为最新代码
[微软用户2]提交修改需要先commit到本地,然后再push到远程版本库中
对于SVN来说,由于是中心式的仓库管理形式,所以并不存在特殊的远程提交的概念,所有的commit操作都可以认为是对远程仓库的更新动作。
在git中,因为有本地仓库和remote仓库之分,所以也就区别于commit 操作,存在额外的push命令,用于将本地仓库的数据更新到远程仓库中去。
git push 可以选择需要提交的更新的分支以及制定该分支在远程仓库上的名字。
[微软用户3]新增文件如果不git-add的话,commit是不会提交的
[微软用户4]如果不带上此参数会有错误信息提示
[微软用户5]是将working tree内容和版本库内容进行比较
[微软用户6]是将working tree内容和index内容进行比较
[微软用户7]如果你忘记了你现在工作在哪个分支上,运行下面命令告诉你:
# cat .git/HEAD
[微软用户8]会更新版本库,而不会更新index和working tree
[微软用户9]we will use the word "branch" to mean a line of development, and "branch head" (or just "head") to mean a reference to the most recent commit on a branch
[微软用户10]Git uses a staging area called "the index" to determine what will be included in a commit. Other version control systems like Subversion use the working copy itself as a staging area (ie. svn ci will check in all changes in the working copy), but Git instead will only commit the changes that you explicitly tell it to commit; here "telling" Git means "adding to the index".
分享到:
相关推荐
"猴子都能懂的Git入门-整站"是一个专门为初学者设计的Git学习资源,旨在用简单易懂的方式讲解Git的基础知识,并逐步引导进阶到高级应用。 入门篇主要涵盖以下内容: 1. Git安装:讲解如何在Windows、Mac OS X和...
git入门培训ppt,git使用培训,git发展,git分支的使用,git中的基本使用说明和以及基本命令, git入门培训ppt,git使用培训,git发展,git分支的使用,git中的基本使用说明和以及基本命令
"猴子都能懂的Git入门"这个标题暗示了这是一个适合初学者的Git教程,旨在用易于理解的方式介绍Git的基础知识。下面将详细阐述Git的核心概念和常用操作。 1. **Git基础概念**: - **仓库(Repository)**:Git中的...
"猴子都能懂的GIT入门"这个主题,旨在让初学者,甚至是对技术不太熟悉的人都能轻松理解Git的基本概念和操作。Git的核心价值在于它能够跟踪代码的历史版本,允许团队成员在不影响主分支的情况下各自开发,然后通过...
"猴子都能懂的Git入门-html版"是一个专为初学者设计的教程,它以易于理解的方式介绍了Git的基础知识,包括卡通示例图,使得学习过程更加直观和有趣。 Git的核心概念包括仓库(Repository)、分支(Branch)、提交...
Git入门到实践 高清 有目录
Git入门学习资料 包括如下文档: Git.pdf git-tutor.pdf progit.zh.pdf
将网页版的猴子都能懂的GIT(https://backlog.com/git-tutorial/cn/)转换成PDF格式,并且已添加书签,感谢这个作者编写的教程
本文档旨在为git入门学者提供全面的基础知识和实用技巧,帮助安卓手机开发者更好地理解和应用git。 1. **Git基础概念** - **版本控制**:Git的核心功能是管理文件的不同版本,它记录每一次修改,便于回溯和协作。 ...
### Git入门特别教程 #### 概述 随着技术的发展,版本控制工具的选择变得越来越重要。在众多版本控制系统中,Git因其高效性和灵活性受到广泛推崇。本文档旨在为初学者提供一个简洁明了的Git入门指南,帮助理解Git...
git入门笔记, 基本操作,主要记录了学习git的过程使用到饿一些基本命令,比如常见的git pull, git push, git status, git log等
学习git的直通车,git入门必备。
这个“好程序员Git入门到精通教程[视频课程].txt打包整理.zip”压缩包显然包含了关于Git的学习资料,可能是文字笔记或者课程大纲,旨在帮助初学者掌握Git的基础到高级用法。通过这个资源,学习者可以了解Git的基本...
【Git入门教程1】 Git是一种分布式版本控制系统,相较于CVS和SVN,它拥有许多显著的优势,这使得酷讯公司选择了Git作为其软件版本管理工具。Git的主要特点包括: 1. **简易初始化**:使用`git init`和`git commit ...
Git 入门教程 Git 是目前世界上最先进的分布式版本控制系统,由 Linus 在 2005 年创建。 Git 的诞生离不开 Linux 的发展,Linux 系统不断发展,已经成为最大的服务器系统软件了。 Linux 的代码是如何管理的呢?在 ...
这个“git入门学习实验笔记”涵盖了在Linux环境中开始使用Git的基本步骤和概念。以下是一些关键知识点的详细解释: 1. **安装Git**: 在Linux系统中,可以通过包管理器(如apt-get for Ubuntu/Debian或yum for ...
GIt入门与应用
03★Git入门★Git初始设定_git_init