wget
GIT首页
WINDOWS版本GIT首页
//-----------------ubuntu 安装GIT----------------------------------------------
1: 在ubuntu 下安装
先从那里下一个后git-core-1.5.6.~i386.deb(文件名有这样的字符在里面就差不多了)的包.
然后安装.
2: 再装个OpenSSH,GIT要靠它通信.
sudo apt-get install openssh-server
sshd
//------------------操作------------------------------------------------
1: 找一个或者创建一个路径,这个路径的权限要给够
2: 进入到第一步的那个路径下,那个路径为当前路径,以后的操作都以这个当前路径为基准
3: 如果是开始新一个工程(在其它机子上没有这个GIT工程),则用GIT命令初始化这个目录
git --bare init 或 git init //git --bare init
git config user.name "" //顺便登记一下你的名字,以便在以后查看记录的时候便于标明这是谁谁谁搞的
git config user.email //你的邮箱
如果在其它机子已经开始了这个工程,则就没必要初始化了,直接从那机子上克隆一个过来.克隆的时候它会连文件夹也带过来.
git clone <登录那机子的帐户名>@<那机子的IP>:<具体路径>
4: GIT仓库(这个是人看不懂,由GIT命令管理的)可以管理好几个分支.这些分支可以用来分配给不同的人操作.上面的初始化只默认创建了一个master分支,
在工作的时候最好不要在master主分支下干活,因为这个分支主要用来合并其它分支的,所以这个时候要创建其它分支,要多少个随你的便
git branch <分支名>
5: 前几步已经完成了工作树(也就是上面说的那个当前路径)跟仓库的建设了.可以开始工作了,工作的时候,所有的涉及的文件都必须在那个目录下(也称工作树)干活.
6: 当干了很久的活了,觉得有必要把已经完成的活放入GIT仓库里去了,那么这个时候,先进入到当前路径下
然后再选择自己所属的分支
git checkout <分支名>
如果要把更新的文件放入仓库
git add . //添加所有的,如果没有新增文件则可以不使用此命令,用了也死不了
git commit -a -m "1.0.0.1" //提交,并且以 "1.0.0.1" 这个字符串来决定这次提交的信息,以利于还原的时候有个参照信息
当你觉得搞错了,不应该提交,要反悔了,你可以反悔
git reset
当你要返回到历史的某个时刻的状态
你可以参照 git checkout
7: 对于非管理员的干活的,至此就差不多了.
8: 工程完成了一段时间后,觉得有必要把全部的分支合并到master当中来了,这个时候
先选择master分支
git checkout master
然后再使用,有多个可以使用多次合并
git merge <其它分支名>
9: 到这里上面的操作都是在本地的仓库里面捣腾,没有在其它机子里面的仓库里干活.
10: 当几台机子上都有同样的GIT工程在开工干活的时候
这个时候A机子主动要跟B机子同步一下的话,得先让B完成他的分支合并,A机子才能真正的拿到数据
git pull <帐户名>@: master //一般是把他的master拿过来同步
如果A不主动要求同步,则B可以把他的分支主动送给A,前提也是B先合并自己的分支到主分支
git push <帐户名>@: master //按道理这里不应该上传到人家的master分支上,最好上传到一个临时分支上
-------------------------------------------------------------------------------------------------------------------------
GIT 常用命令
-------------------------------------------------------------------------------------------------------------------------
Step 1: setup a bare GIT repository
mkdir directory
cd directory
git --bare init //setup a bare GIT repository
git init
chown -R username
git config user.name "" //在/config当中增加项
git config user.email
git var -l //列出所有的配置项变量
git-clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
//远程下载一个GIT项目,也叫克隆一个tree
//---------------------------------------
cd test
git-clone ../test_git //down current directory git source to the here
SSH协议:
帐户名@IP:/PATH
//---------------------------------------
git initdb //
git-pull //更新本的git tree,类似cvs update
git-diff //列出本地的tree与各版本的tree的不同
//------------------------------------------
列出自己tree与master的不同 # git-diff
列出自己tree与某一个version的不同 # git-diff v2.6.22
列出某一个文件,和以前某个version的该文件的不同:
# git diff v2.6.20 init/main.c
注意结果中+表示自己的tree,-表示2.6.20的。
列出两个tag中某一文件的不同:
# git-diff v2.6.23 v2.6.24-rc1 init/main.c
//------------------------------------------
git-gui //图形界面的git
git-apply //用来apply那些用git-diff生成的补丁
git-describe //查看当前版本
git -add -a //本目录下所有文件和子目录
git -commit //提交
//--------------------分支的概念-------------------------------------------------------
GIT创建仓库的时候默认创建master主分支,为了安全,最好创建其它的工作分支.分支就混在master里面,肉眼看不出区别来.
git branch 分支名 //创建一分支
git checkout 分支名 //改变当前分支.
git branch //列出当前所有分支,并标明主分支
cat .git/HEAD //这个玩艺儿也能告诉你你当前使用的是哪个分支
git diff 分支名1 分支名2 //查看两个分支之间的不同之处
//工作当中肯定要做一些几个分支合并到主分支的活
1: git checkout 分支名 //回到需合并到的分支
2: git pull . 其它分支名 //把其它的分支合并
3: 还有一个命令可以使用 git-merge <其它分支名>
//-----------------从GIT库中还原文件-----------------------------------------------
1: git checkout 分支名 //先选择分支
2: git checkout 文件名
3: git checkout -f //提取全部文件
//-----------------SSH协议---------------------------------------------------------
1:安装SSH协议
UBUNTU下 sudo apt-get install openssh-server
2:用SSH相互访问
ssh -l <帐户名>
//------------------------------------------------------------------------------------
git push <帐户名>@IP:/PATH master //可以将本地的Tree传送到远程的电脑当中
git checkout -f //提取当前branch的所有文件.
git pull <帐户名>@IP:/PATH master //从远程电脑当中取出更新版本,在使用这个之前远程电脑须进行切换分支操作.
//------------------------------------------------------------------------------------
git-reset --soft HEAD^ //逆转了提交的版本进度
git reset HEAD~ //真正的撤消,在git log当中查不到相关的信息了,但在reflog中有相关记录,这个时候如果用
git checkout file ,则可以回到某状态.
git-commit -a -c ORIG_HEAD //恢复撤消
git-log //显示各Commit的ID及提示信息
git-revert //撤消某次提交,这个撤消只是反向打入Tree当中
git-tag //给某次COMMIT ID打标签
git-tag -d //删除TAG
git-apply -R -v //应用那些git diff补丁
git reflog //列出HEAD当中的log
git checkout } [文件名] //可以提取某历史提交文件,HEAD 就是git reflog当中查出来的,后面的文件名随阁下定
git diff //比较两个提交之间的不同