Git分布式版本管理系统常用命令扫盲篇

前段时间看下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 [email protected]:用户名/远程仓库名称.git   (增加一个远程仓库配置)
   如果此步骤出现"已经存在"的错误 ,说明已经配置了远程仓库,如需要删除重新配置可以执行:git remote rm origin
11.push代码到服务器上
   git push origin master (代码进入到"保存状态",即提交成功)
 
12.使用clone方式
  git clone [email protected]:用户名/仓库名称.git  (下载远程代码到本地)
  生成.git目录,并且下载所有数据,取出最新版本的文件拷贝
  git clone [email protected]:用户名/仓库名称.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。

猜你喜欢

转载自tedtian.iteye.com/blog/1827207