- 浏览: 910112 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
itzhongyuan:
java Random类详解 -
david_je:
你好,我看到你在C里面回调JAVA里面的方法是在native里 ...
Android NDK开发(1)----- Java与C互相调用实例详解 -
fykyx521:
请求锁是在 oncreate 释放实在ondestroy?? ...
Android如何保持程序一直运行 -
aduo_vip:
不错,总结得好!
Android读取assets目录下的资源 -
f839903061:
给的网址很给力哦!
Android 4.0.1 源码下载,编译和运行
git介绍
使用Git的第一件事就是设置你的名字和email,这些就是你在提交commit时的签名。
$ git config --global user.name "Scott Chacon"
$ git config --global user.email "schacon@gmail.com"
执行了上面的命令后,会在你的主目录(home directory)建立一个叫 ~/.gitconfig 的文件
[user]
name = junechiu
email = abc20899@163.com
git status 查看索引
一. 获得git仓库
我们需要一个Git仓库。有两种方法可以得到它:一种是从已有的Git仓库中 clone (克隆,复制);还有一种是新建一个仓库,把未进行版本控制的文件进行版本控制。
1. Clone一个仓库
为了得一个项目的拷贝(copy),我们需要知道这个项目仓库的地址(Git URL). Git能在许多协议下使用,所以Git URL可能以ssh://, http(s)://, git://,或是只是以一个用户名(git 会认为这是一个ssh 地址)为前辍. 有些仓库可以通过不只一种协议来访问,例如,Git本身的源代码你既可以用 git:// 协议来访问:
git clone git://git.kernel.org/pub/scm/git/git.git ******************clone一个仓库******************
也可以通过http 协议来访问:
git clone http://www.kernel.org/pub/scm/git/git.git
2. 初始化一个新的仓库
现在假设有一个叫”project.tar.gz”的压缩文件里包含了你的一些文件,你可以用下面的命令让它置于Git的版本控制管理之下.
$ tar xzf project.tar.gz
$ cd project
$ git init ******************初始化一个仓库******************
Git会输出:
Initialized empty Git repository in .git/
如果你仔细观查会发现project目录下会有一个名叫”.git” 的目录被创建,这意味着一个仓库被初始化了。
二. 正常的工作流程 add ---> commit --->
修改文件,将它们更新的内容添加到索引中.
$ git add file1 file2 file3 ******************添加新文件******************
你现在为commit做好了准备,你可以使用 git diff 命令再加上 --cached 参数 ,看看哪些文件将被提交(commit)。
$ git diff --cached ******************哪些文件将被提交******************
也可以用git status命令来获得当前项目的一个状况:
git commit (git commit -m test) -m后加入提交说明 ******************提交修改******************
提交命令 这会提示你输入本次修改的注释,完成后就会记录一个新的项目版本.
commit注释最好以一行短句子作为开头,来简要描述一下这次commit所作的修改(最好不要超过50个字符);然后空一行再把详细的注释写清楚。这样就可以很方便的用工具把commit注释变成email通知,第一行作为标题,剩下的部分就作email的正文.
除了用git add 命令,还可以用
$ git commit -a ******************提交所有修改的文件******************
这会自动把所有内容被修改的文件(不包括新创建的文件)都添加到索引中,并且同时把它们提交。
Git跟踪的是内容不是文件 git add 不但是用来添加不在版本控制中的新文件,也用于添加已在版本控制中但是刚修改过的文件
三. 分支与合并@基础
一个Git仓库可以维护很多开发分支。现在我们来创建一个新的叫”experimental”的分支:
$ git branch experimental ******************新建分支*****************
如果你运行下面这条命令:
$ git branch ******************查看所有分支******************
你会得到当前仓库中存在的所有分支列表:
experimental
* master
“experimental” 分支是你刚才创建的,“master”分支是Git系统默认创建的主分支。星号(“*”)标识了你当工作在哪个分支下,输入:
$ git checkout experimental ******************切换分支******************
切换到”experimental”分支,先编辑里面的一个文件,再提交(commit)改动,最后切换回 “master”分支。
(edit file)
$ git commit -a ******************提交并 切换******************
$ git checkout master
你现在可以看一下你原来在“experimental”分支下所作的修改还在不在;因为你现在切换回了“master”分支,所以原来那些修改就不存在了。
你现在可以在“master”分支下再作一些不同的修改:
(edit file)
$ git commit -a
这时,两个分支就有了各自不同的修改(diverged);我们可以通过下面的命令来合并“experimental”和“master”两个分支:
$ git merge experimental ******************合并分支******************
如果这个两个分支间的修改没有冲突(conflict), 那么合并就完成了。如有有冲突,输入下面的命令就可以查看当前有哪些文件产生了冲突:
$ git diff ******************查看冲突的文件******************
当你编辑了有冲突的文件,解决了冲突后就可以提交了:
$ git commit -a
提交(commit)了合并的内容后就可查看一下:
$ gitk ******************查看合并的信息******************
执行了gitk后会有一个很漂亮的图形的显示项目的历史。
这时你就可以删除掉你的 “experimental” 分支了(如果愿意):
$ git branch -d experimental ******************删除一个分支******************
git branch -d只能删除那些已经被当前分支的合并的分支. 如果你要强制删除某个分支的话就用git branch –D;下面假设你要强制删除一个叫”crazy-idea”的分支:
$ git branch -D crazy-idea ******************强制删除某个分支******************
分支是很轻量级且容易的,这样就很容易来尝试它。
合并两个分离的分支
$ git merge branchname ******************合并分支到当前分支******************
这个命令把分支"branchname"合并到了当前分支里面。如有冲突(冲突--同一个文件在远程分支和本地分支里按不同的方式被修改了);那么命令的执行输出就像下面一样
$ git merge next
100% (4/4) done
Auto-merged file.txt
CONFLICT (content): Merge conflict in file.txt
Automatic merge failed; fix conflicts and then commit the result.
在有问题的文件上会有冲突标记,在你手动解决完冲突后就可以把此文件添 加到索引(index)中去,用git commit命令来提交,就像平时修改了一个文件 一样。
如果你用gitk来查看commit的结果,你会看到它有两个父分支:一个指向当前 的分支,另外一个指向刚才合并进来的分支。
git status 会显示这些文件没有合并(unmerged)
git reset --hard HEAD ******************撒销一个合并******************
$ git reset --hard ORIG_HEAD ******************合并后代码提交了?******************
git log ******************显示所有的提交******************
git diff master..test ******************显示两个分支间的差异******************
四. 分布式的工作流程
Bob执行 git clone /home/alice/project myrepo -->修改 --->git commit -a
Alice执行 $ cd /home/alice/project
Alice执行 $ git pull /home/bob/myrepo master ******************拉取项目******************
git pull命令执行两个操作: 它从远程分支(remote branch)抓取修改 的内容,然后把它合并进当前的分支。
如果你要经常操作远程分支(remote branch),你可以定义它们的缩写:
Bob执行 $ git remote add bob /home/bob/myrepo bob是缩写 在这里远程分支的名 字就叫bob/master.
Alice执行 $ git fetch bob 这条命令并不会把抓下来的修改合并到当前分支里
Alice执行 $ git log -p master..bob/master 把Bob从Alice的主分支(master)中签出后所做的修改全部显示出来。
Alice执行 $ git merge bob/master 把bob/master分支合并进来
也可以用 git pull . remotes/bob/master
Bob执行 $ git pull
如果Bob从Alice的仓库克隆(clone),那么他就不需要指定Alice仓库的地 址;因为Git把Alice仓库的地址存储到Bob的仓库配库文件,这个地址就是 在git pull时使用:
$ git config --get remote.origin.url
/home/alice/project
git config -l ******************git clone创建的所有配置参数******************
如果Bob打算在另外一台主机上工作,他可以通过ssh协议来执行"clone" 和"pull"操作:
$ git clone alice.org:/home/alice/project myrepo
将修改推到一个公共仓库
git push ssh://yourserver.com/~you/proj.git master:master
你可以强制git-push在上传修改时先更新,只要在分支名前面加一个加号。
$ git push ssh://yourserver.com/~you/proj.git +master
使用Git的第一件事就是设置你的名字和email,这些就是你在提交commit时的签名。
$ git config --global user.name "Scott Chacon"
$ git config --global user.email "schacon@gmail.com"
执行了上面的命令后,会在你的主目录(home directory)建立一个叫 ~/.gitconfig 的文件
[user]
name = junechiu
email = abc20899@163.com
git status 查看索引
一. 获得git仓库
我们需要一个Git仓库。有两种方法可以得到它:一种是从已有的Git仓库中 clone (克隆,复制);还有一种是新建一个仓库,把未进行版本控制的文件进行版本控制。
1. Clone一个仓库
为了得一个项目的拷贝(copy),我们需要知道这个项目仓库的地址(Git URL). Git能在许多协议下使用,所以Git URL可能以ssh://, http(s)://, git://,或是只是以一个用户名(git 会认为这是一个ssh 地址)为前辍. 有些仓库可以通过不只一种协议来访问,例如,Git本身的源代码你既可以用 git:// 协议来访问:
git clone git://git.kernel.org/pub/scm/git/git.git ******************clone一个仓库******************
也可以通过http 协议来访问:
git clone http://www.kernel.org/pub/scm/git/git.git
2. 初始化一个新的仓库
现在假设有一个叫”project.tar.gz”的压缩文件里包含了你的一些文件,你可以用下面的命令让它置于Git的版本控制管理之下.
$ tar xzf project.tar.gz
$ cd project
$ git init ******************初始化一个仓库******************
Git会输出:
Initialized empty Git repository in .git/
如果你仔细观查会发现project目录下会有一个名叫”.git” 的目录被创建,这意味着一个仓库被初始化了。
二. 正常的工作流程 add ---> commit --->
修改文件,将它们更新的内容添加到索引中.
$ git add file1 file2 file3 ******************添加新文件******************
你现在为commit做好了准备,你可以使用 git diff 命令再加上 --cached 参数 ,看看哪些文件将被提交(commit)。
$ git diff --cached ******************哪些文件将被提交******************
也可以用git status命令来获得当前项目的一个状况:
git commit (git commit -m test) -m后加入提交说明 ******************提交修改******************
提交命令 这会提示你输入本次修改的注释,完成后就会记录一个新的项目版本.
commit注释最好以一行短句子作为开头,来简要描述一下这次commit所作的修改(最好不要超过50个字符);然后空一行再把详细的注释写清楚。这样就可以很方便的用工具把commit注释变成email通知,第一行作为标题,剩下的部分就作email的正文.
除了用git add 命令,还可以用
$ git commit -a ******************提交所有修改的文件******************
这会自动把所有内容被修改的文件(不包括新创建的文件)都添加到索引中,并且同时把它们提交。
Git跟踪的是内容不是文件 git add 不但是用来添加不在版本控制中的新文件,也用于添加已在版本控制中但是刚修改过的文件
三. 分支与合并@基础
一个Git仓库可以维护很多开发分支。现在我们来创建一个新的叫”experimental”的分支:
$ git branch experimental ******************新建分支*****************
如果你运行下面这条命令:
$ git branch ******************查看所有分支******************
你会得到当前仓库中存在的所有分支列表:
experimental
* master
“experimental” 分支是你刚才创建的,“master”分支是Git系统默认创建的主分支。星号(“*”)标识了你当工作在哪个分支下,输入:
$ git checkout experimental ******************切换分支******************
切换到”experimental”分支,先编辑里面的一个文件,再提交(commit)改动,最后切换回 “master”分支。
(edit file)
$ git commit -a ******************提交并 切换******************
$ git checkout master
你现在可以看一下你原来在“experimental”分支下所作的修改还在不在;因为你现在切换回了“master”分支,所以原来那些修改就不存在了。
你现在可以在“master”分支下再作一些不同的修改:
(edit file)
$ git commit -a
这时,两个分支就有了各自不同的修改(diverged);我们可以通过下面的命令来合并“experimental”和“master”两个分支:
$ git merge experimental ******************合并分支******************
如果这个两个分支间的修改没有冲突(conflict), 那么合并就完成了。如有有冲突,输入下面的命令就可以查看当前有哪些文件产生了冲突:
$ git diff ******************查看冲突的文件******************
当你编辑了有冲突的文件,解决了冲突后就可以提交了:
$ git commit -a
提交(commit)了合并的内容后就可查看一下:
$ gitk ******************查看合并的信息******************
执行了gitk后会有一个很漂亮的图形的显示项目的历史。
这时你就可以删除掉你的 “experimental” 分支了(如果愿意):
$ git branch -d experimental ******************删除一个分支******************
git branch -d只能删除那些已经被当前分支的合并的分支. 如果你要强制删除某个分支的话就用git branch –D;下面假设你要强制删除一个叫”crazy-idea”的分支:
$ git branch -D crazy-idea ******************强制删除某个分支******************
分支是很轻量级且容易的,这样就很容易来尝试它。
合并两个分离的分支
$ git merge branchname ******************合并分支到当前分支******************
这个命令把分支"branchname"合并到了当前分支里面。如有冲突(冲突--同一个文件在远程分支和本地分支里按不同的方式被修改了);那么命令的执行输出就像下面一样
$ git merge next
100% (4/4) done
Auto-merged file.txt
CONFLICT (content): Merge conflict in file.txt
Automatic merge failed; fix conflicts and then commit the result.
在有问题的文件上会有冲突标记,在你手动解决完冲突后就可以把此文件添 加到索引(index)中去,用git commit命令来提交,就像平时修改了一个文件 一样。
如果你用gitk来查看commit的结果,你会看到它有两个父分支:一个指向当前 的分支,另外一个指向刚才合并进来的分支。
git status 会显示这些文件没有合并(unmerged)
git reset --hard HEAD ******************撒销一个合并******************
$ git reset --hard ORIG_HEAD ******************合并后代码提交了?******************
git log ******************显示所有的提交******************
git diff master..test ******************显示两个分支间的差异******************
四. 分布式的工作流程
Bob执行 git clone /home/alice/project myrepo -->修改 --->git commit -a
Alice执行 $ cd /home/alice/project
Alice执行 $ git pull /home/bob/myrepo master ******************拉取项目******************
git pull命令执行两个操作: 它从远程分支(remote branch)抓取修改 的内容,然后把它合并进当前的分支。
如果你要经常操作远程分支(remote branch),你可以定义它们的缩写:
Bob执行 $ git remote add bob /home/bob/myrepo bob是缩写 在这里远程分支的名 字就叫bob/master.
Alice执行 $ git fetch bob 这条命令并不会把抓下来的修改合并到当前分支里
Alice执行 $ git log -p master..bob/master 把Bob从Alice的主分支(master)中签出后所做的修改全部显示出来。
Alice执行 $ git merge bob/master 把bob/master分支合并进来
也可以用 git pull . remotes/bob/master
Bob执行 $ git pull
如果Bob从Alice的仓库克隆(clone),那么他就不需要指定Alice仓库的地 址;因为Git把Alice仓库的地址存储到Bob的仓库配库文件,这个地址就是 在git pull时使用:
$ git config --get remote.origin.url
/home/alice/project
git config -l ******************git clone创建的所有配置参数******************
如果Bob打算在另外一台主机上工作,他可以通过ssh协议来执行"clone" 和"pull"操作:
$ git clone alice.org:/home/alice/project myrepo
将修改推到一个公共仓库
git push ssh://yourserver.com/~you/proj.git master:master
你可以强制git-push在上传修改时先更新,只要在分支名前面加一个加号。
$ git push ssh://yourserver.com/~you/proj.git +master
发表评论
-
Android使用binder访问service的方式
2013-08-23 09:42 15661. 我们先来看一个与本地service通信的例子。 pub ... -
android-Service和Thread的区别
2013-08-23 09:17 879servie是系统的组件,它由系统进程托管(servicema ... -
cocos2d-x学习之自动内存管理和常见宏
2013-07-29 15:41 8781.自动内存管理 1)概述 C++语言默认是 ... -
cocos2dx中利用xcode 调用java中的函数
2013-07-29 11:36 24851. 先把cocos2dx根目录中的 /Users/zhaos ... -
cocos2dx(v2.x)与(v1.x)的一些常用函数区别讲解
2013-07-29 10:35 1067第一个改动: CCLayer初始化 自定义Layer,类名 ... -
xcode与eclipse整合cocos2dx
2013-07-29 10:32 1188文档xcode版本是 204 1. 在xcode中创建coc ... -
vim
2013-07-23 20:43 986mac 下 vim 在 /usr/share/vim目录中 ... -
Git命令快速参考
2013-07-23 16:01 9381. 初始化 配置全局用户名和电子邮件地址 git confi ... -
git提交代码
2013-07-23 16:00 10051. 在本地创建一个Git的工作空间,在里面创建一个工程(如H ... -
Android.mk的用法和基础
2013-07-19 14:11 4290一个Android.mk file用来向编译系统描述你的源代码 ... -
eclipse配置NDK-Builder命令
2013-07-18 11:02 9861. 2. -
eclipse配置javah命令
2013-07-18 10:48 19581.找到javah命令所在的目录 我的为 /usr/bi ... -
Android SDL2.0 编译
2013-07-17 13:40 19261,下载: wget http://www.libsdl.o ... -
IntelliJ Idea 常用快捷键列表
2013-05-27 10:19 0Alt+回车 导入包,自动修 ... -
android应用后台安装
2013-05-21 12:02 928android应用后台安装,静默安装的代码实现方法 http ... -
编译linux内核映像
2013-05-21 11:33 925a)准备交叉编译工具链 android代码树中有一个pr ... -
如何单独编译Android源代码中的模块
2013-05-21 11:29 950一. 首先在Android源代码 ... -
Ubuntu安装JDK6和JDK5
2013-05-19 19:04 963sudo apt-get install sun-java6- ... -
java_jni详解_01
2013-05-08 17:15 914java中的jni 例子HelloWorld 准备过程: 1 ... -
下载android源码 中断解决原因
2013-05-07 15:51 1272解决方法 1. 浏览器登录https://android.go ...
相关推荐
1、Git介绍和使用教程,主要针对新手入职快速自学git的使用,也可供大佬面向学校或者公司培训使用,根据多年经验总结和整理出来的课程,上手工作使用的git知识这里全都有,如果是想用来制作自己的培训课程的话,简单...
git代码管理艺术_GIT介绍,介绍版本管理软件的不同,GIT的使用方法等,让大家从0基础掌握到GIT使用规范
git开发指南,为初学者提供一个学习指引,适合自我学习及技术培训使用
具体介绍了在Git管理工具常用的命令的使用方法,快速掌握Git的使用
自己整理的git文档,方便自己的使用,也方便需要的朋友使用
Git是一种分布式版本控制系统,由Linus Torvalds于2005年创建。它最初是为Linux内核而开发的,但现在已经成为开源软件中最流行的版本控制系统之一。Git的主要特点是极其高效和灵活,它能够轻松管理和跟踪您的代码,...
git 的相关介绍及使用
Git&GitHub_Git简史.avi
介绍了下SVN和GIT的区别和关联 介绍了一种用法 同时介绍了windows下的畸形用法
[Github_Desktop][Git_教學]圖形介面#04._.Git介紹與建立Repo
Git介绍及基本概念 1. 分布式版本控制系统 Git是一个分布式版本控制系统,每个本地保留远程仓库的完整副本,在本地可以进行任何版本控制操作,比如修改,提交,创建分支,合并分支,回退等。需要时才推送到远程仓库...
git.ppt演示文稿,git.ppt演示文稿,git.ppt演示文稿,git.ppt演示文稿
Git简单培训,包括git介绍、git的功能、eclipse上git的使用、git与svn比较等内容
git使用详细介绍
1.git介绍 是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件 2.特点 分布式相比于集中...
技术文档分享,免费获取请私信博主。
git 介绍我的 git 介绍幻灯片幻灯片在线查看我的幻灯片幻灯片是用 Markdown 编写的,由提供支持
简易导航:HTML + CSS和Git介绍库
思维导图git gui应用页面介绍,对git感兴趣的朋友可以结合查看其他文章参考
gentle-git-intro:将我的git介绍变成在线课程