前段时间看下Git这种分布式版本管理技术,感觉比SVN,VSS之类的VCS有很多可取之处,下面介绍了下Git如何在Widows下使用,以及一些Git常用操作基本命令;
--------------------------------------------windows 下使用git-----------------------------------------------
1.下安装git for window
http://code.google.com/p/msysgit/downloads/list?q=full+installer+official+git
安装时选择git for linux , 可以使用linux命令
2.新建GitPro项目目录
3.git环境配置
git config --global user.name "your name"
git confit --global user.email *******@qq.com
每次git提交时候都会引用这料条信息,说明是谁提交了更新,所以会随更新内容一起被永久的纳入到历史记录中
4.初始化项目GitPro
在GitPro目录下执行 git init 命令
此时会在GitPro 生成.git文件夹
5.增加要变更文件
git add . (.点号表示文件下所有的文件)
git add Test.java 表示具体增加Test.java文件 "暂存状态"
6.在5的步骤上执行
git commit -m 'first commit' 进入到已 "保存状态"
7.将代理商传送到远程仓库中
首先到https://bitbucket.org/ 注册账号 并且新建私有仓库(这里选择了bitbucket作为托管站点)
如果不选择bitbucket,可以从https://git.wiki.kernel.org/index.php/GitHosting 选择一个具有托管服务的站点
8.使用ssh方式上传 (上传之前)
ssh-keygen -C "*******@qq.com" -t rsa
(-C提供一个新注释 以后可以用 -c 选项修改)
( -t 选项指定,如果没有指定则默认生成用于SSH-2的RSA密钥)
9.将公钥关联到bitbucket新注册的账号上
打开https://bitbucket.org/ 进入进入到 Account settings设置中 的SSH keys功能菜单中
将本地公钥文本中的内容复制上去
10.准备提交到远程仓库中(继续完成6步骤接下来的内容)
git remote add origin git@gitbucket.org:用户名/远程仓库名称.git (增加一个远程仓库配置)
如果此步骤出现"已经存在"的错误 ,说明已经配置了远程仓库,如需要删除重新配置可以执行:git remote rm origin
11.push代码到服务器上
git push origin master (代码进入到"保存状态",即提交成功)
12.使用clone方式
git clone git@bitbucket.org:用户名/仓库名称.git (下载远程代码到本地)
生成.git目录,并且下载所有数据,取出最新版本的文件拷贝
git clone git@bitbucket.org:用户名/仓库名称.git selfDefinedGit 使用自定义项目名称
---------------------------------------介绍下常用的命令---------------------------------------
1.git status
查看文件处于什么状态
2.git add
对于修改过的文件,此时没有放入到暂存区,需要使用git add命令
这是个多功能命令:
i:跟踪新文件
ii:将跟踪文件放入到暂存区
iii:合并时将有冲突文件标记为已经解决状态
3.git diff
git diff 修改与暂存的差异 或者修改与上次提交的差异
git diff --cached 修改与上次提交的差异
4.git commit
git commit -a 将所有已经跟踪过的文件暂存起来一并提交 跳过git add 加入暂存区域的步骤
git commit --amend 撤销提交 重新编辑
如:git commit -m 'commit'
git add test.txt
git commit --ammend 第二个命令修正了第一个提交内容
5.git rm
彻底删除文件
git rm 文件名 再提交时候将移除文件状态 如果删除之前已经改过,需使用git rm -f 文件名 强制删除
仓库中删除,也可以git reset HEAD fileName 来撤销对文件的修改
6. .gitignore的使用
为了忽略不需要提交的文件 在git项目根目录下 新建.gitignore文件
echo 忽略的文件名 >> .gitignore
echo .gigignore>>.ginignore 将本身也加入到此文件中
7.git mv
git mv source.txt target.txt
相当于运行
mv source.txt target.txt
git rm source.txt
git add target.txt
8.git log
查看日志
gitk 显示图形化界面
9.git branch
新建分支 : git branch testing
切换到testing分支中: git checkout testing
删除分支:git branch -d testing
git branch -v 每个分支最后一次提交的信息
git branch --merged 查看哪些分支已被并入当前分支
git branch --no-merged 尚未合并的分支 此时如果需要删除分支 需要使用 git branch -D testing 来删除
10.git checkout
git checkout branchName 切换到分支
git checkout -b branchName 新建分支 并且切换到分支
11.git remote
git remote 显示所有远程仓库
git remote add 仓库名 地址 -->增加远程仓库
git remote show origin 查看远程仓库的详细信息
git remote rename iss34 iss35 重新命名,将iss34换成iss35
git remote rm iss35 删除远程仓库
12.git push
git push origin 分支名/master 向服务器上提交分支/mster (远程仓库分支名与本地一致)
git push origin clientBranch:serverBeanch 提取自己的分支更行到服务器上的分支 (支持重命名形式)
git push origin :serverBranch 删除远程分支
13.git fetch
git fetch origin 从远程获取分支 此时不能本地编辑该远程仓库,但是可以从远程分支的基础上分化一个
新的分支来:
git checkout -b clientBranch origin/serverBranch (有跟踪分支的作用,可以在此分支中,直接使用git push,git pull等命令)
git meger origin/serverBranch 下载远程仓库分支并合并到当前分支
14:git rebase
git checkout branchName --> git rebase master(衍入到master分支) -->git checkout master(回到
要被 衍入的分支)-->git merge branchName(进行fast merge移动指针,快速合并) 将在分支
branchName中的改变在master分支中重现
git rebase --onto master server client (--onto选项来把他们在master分支衍入,检索出client分支,
找出client分支和server分支的共同祖先之后的变化,在master分支上重演)
git rebase [主分支][特性分支] 命令会先检出特性分支 然后再主分支上重演: git rebase master server
(注:衍合会带来麻烦,如果把衍合当成一种在推送之前清理提交历史的手段,而且仅仅衍合那些永远不
会公开的commit,那就不会有任何问题)
15.git show
git show commitId 查看对象commitId下面的提交内容(commitId不必须写全)
文章主要是给初学者写的,如果想深入了解下Git的原理或者想知道如何架构Git服务器,可以阅读《Pro Git》这本书,非常详细的介绍了Git。