git

1.安装git:
  sudo apt-get install git-core git-gui git-doc
2.申请GitHub帐户
3.建立本地仓库:
  #设置名字便于提交标注
    git config --global user.name "用户名或者用户ID"
  #接收工程变动通知
    git config --global user.email "邮箱"
  #内存中保存账号信息-默认只有15分钟(git config --global credential.helper cache)
    git config --global credential.helper 'cache --timeout=3600'
  #SSH-密钥认证:
   检查已有公钥cd ~/.ssh,若已存在公钥则进行备份mkdir key_backup-->cp id_rsa* key_backup-->rm -rf id_rsa*
   生成密钥:ssh-keygen -t rsa -C "邮箱" #为了方便设生成时不输入口令
   将SSH密钥添加到GitHub公钥管理中:
     sudo apt-get install xclip --> xclip -sel clip < ~/.ssh/id_rsa.pub #复制id_rsa.pub内容-不能有空格或换行
     点击"SSH Keys" --> "Add SSH key" --> 粘进key文本框中 --> "Add key"
   #测试
    ssh -T git@github.com
4.创建仓库:
 进入GitHub账户中创建一个仓库
  mkdir ~/zcms
  cd ~/zcms
  git init
 创建README文件:
  touch README
  git add README
  git commit -m 'first commit message'
  #此步操作前,代码都在本地仓库中,还未同步到GitHub账户中
  git remote add origin https://github.com/wen12128/zcms.git #定义远程服务器别名origin
  git push origin master #本地和远程同步,默认为master
 #更新文件
    vim README
    git commit -a -m "second"
    git push origin
5.将远程仓库check out
 mkdir ~/demo --> cd ~/demo --> git init
 git clone https://github.com/wen12128/zcms.git 或 git clone git://github.com/wen12128/zcms.git(Git-daemon协议)
6.Fork仓库:克隆别人的代码库到自己的项目中,可以作为子模块的形式使用,或二次开发
  在想要的工程首页点击"Fork"按钮
  克隆项目:
    git clone https://github.com/csc/project1.git
    克隆后自已的GitHub上就有了该fork
  远程配置-跟踪原始仓库:
    cd project1
    git remote add upstream https://github.com/csc/project1.git
    git fetch upstream
  Push提交:
    git push origin master
    #同步更新原始仓库到本地仓库
    git fetch upstream
    git merge upstream/master
  #若要贡献代码参考help.github.com/send-pull-requests/  help.github.com/articles/using-pull-requests
  #退订fork更新-到原始仓库上点"Unwatch"
  #删除fork https://help.github.com/articles/deleting-a-repository
7.社区:
  参考:https://help.github.com/articles/be-social

8.创建分支:
  ##分支操作Git只生成一个指向当前版本的(快照)指针,不会像其它版本控制那样生成一份现有代码的物理拷贝
  ##Feature branches-功能分支(被用来为即将到来的或遥远的未来版本开发新的功能)
  ##develop branches-开发分支
  ##Release branches-预发布分支(合并到Master分支之前-测试用)
  ##Hotfix branches-修补分支
  ##master         -主分支(正式版本)
  ##--no-ff:默认情况下Git执行"快进式合并",会直接将Master分支指向Develop分支
  ##为了保证版本演进的清晰,使用--no-ff参数后,会执行正常合并,在Master分支上生成一个新节点
  #设置默认分支settings-->default branche
  git remote -v #查看远程仓库  git remote add [name] [url] #添加远程仓库  git remote rm [name]#删除远程仓库
  git remote set-url --push [name] [newUrl]#修改远程仓库  git pull [remoteName] [localBranchName]#拉取远程仓库  git push [remoteName] [localBranchName]#推送远程仓库
  git branch -r #查看远程分支   git branch #查看本地分支  git checkout [name]#切换分支
  git branch [name]#创建本地分支不会自动切换到该分支  git checkout -b [name]#创建新分支并立即切换到新分支
  git push origin test:master#提交本地test分支作为远程的master分支  git push origin test:test#提交本地test分支作为远程的test分支
  #创建开发分支-从master分支上面分出来(git checkout -b [name] [remoteName] )直接检出远程分支
    git checkout -b develop master
  #切换到Master分支
    git checkout master
  #对Develop分支进行合并
    git merge --no-ff develop
  #更改develop分支
    git checkout develop --> touch me --> git add me --> git commit -m "author des" --> git push origin develop
  #-------------------------------
  #创建功能分支myfeature分支-从Develop分支上面分出来
    git checkout -b myfeature develop
  #切换到开发分支
    git checkout develop
  #合并分支-开发完成后要合并到Develop
    git merge --no-ff myfeature
  #删除myfeature分支
    git branch -d myfeature -->git push origin :myfeature
  #同步
    git push origin develop
  #-------------------------------
  #创建预发布分支release-1.2分支-从Develop分支上面分出来
    git checkout -b release-1.2 develop
  #更新版本
    ./bump-version.sh 1.2
  #发布信息
    git commit -a -m "Bumped version number to 1.2"
  #---预发布结束以后,合并进Develop和Master分支---
  #正式发布一个版本
    git checkout master
    git merge --no-ff release-1.2
  #对合并生成的新节点,做一个标签-以备将来参考
    git tag -m "new version" 1.2 --> git push origin refs/tags/* #推送到GitHub远程版本库-->git tag -d 1.2#删除本地里程碑-->git tag -d :1.2#删除远程里程碑
  #为了保持发布分支的变化,需要合并到开发分支
    git checkout develop
    git merge --no-ff release-1.2
  #发布后删除发布分支上的这个版本
    git branch -d release-1.2
  #-------------------------------
  #创建修补分支hotfix-1.2.1分支-从Master分支上面分出来
    git checkout -b hotfix-1.2.1 master
    ./bump-version.sh 1.2.1
    git commit -a -m "Bumped version number to 1.2.1"
    git commit -m "Fixed severe production problem"
  #---修补结束以后,合并进Master和Develop分支---
  #完成修补重新发布
    git checkout master
    git merge --no-ff hotfix-1.2.1
    git tag -a 1.2.1
  #由于开发分支也有错所以
    git checkout develop
    git merge --no-ff hotfix-1.2.1
    git branch -d hotfix-1.2.1

常用命令:
git tag -l #查看里程碑标签
git config -l git show #可以看某次的变更 git config color.ui true #git的控制台输出变得有色彩 git init #初始化项目 git add . #添加到项目中 只要涉及到文件的改动,都要先add,才能commit git commit #提交 git commit -a -m "注释" #提交所有更改,但是新增文件需要先git admasterd git diff #比较working tree 和 index file 差异 git diff --cached #比较index file 和代码仓库的差异 git status #查看目前工作树的状态 git log #查看commit log列表 git log -p #详细的log,会列出更改的对比 #git撤销当前的更改 git reset --soft #只撤销 commit,保留 working tree 和 index file。 git reset --hard #撤销 commit、index file 和 working tree,即撤销销毁最近一次的 commit git reset --mixed #撤销 commit 和 index file,保留 working tree git reset #和 git reset --mixed 完全一样 git reset - xxxx #用于删除登记在 index file 里的某个文件 git忽略文件-在project目录中添加一个.gitignore 文件,一行一个,书写忽略的文件或者文件夹
git branch -r #查看远程branch
git checkout -b bug_fix_local bug_fix_remote #把本地端切换为远程的bug_fix_remote branch并命名为bug_fix_loca

goagent代理github
  git config --global http.proxy http://127.0.0.1:8087
  git config --global http.sslVerify false 或指定证书位置git config --global http.sslCAinfo /opt/goagent/local/CA.crt
  sudo vim ~/.gitconfig:

[http]
	sslVerify = false
	proxy = http://127.0.0.1:8087
	sslCAinfo = /opt/goagent/local/CA.crt
[https]
	sslVerify = false
	proxy = https://127.0.0.1:8087
	sslCAinfo = /opt/goagent/local/CA.crt
[user]
	name = github-username
	email = github-email
[credential]
	helper = cache --timeout=3600

 将证书导入系统根认证中:
  sudo mkdir /usr/share/ca-certificates/github.com/
  cd /usr/share/ca-certificates/github.com/
  sudo cp /opt/goagent/local/certs/github.com.crt .

  sudo mkdir /usr/share/ca-certificates/goagent/
  cd /usr/share/ca-certificates/goagent/
  sudo cp /opt/goagent/local/CA.crt .

  sudo vim /etc/ca-certificates.conf尾部追加:
    github.com/github.com.crt
    goagent/CA.crt
  sudo dpkg-reconfigure ca-certificates
  sudo update-ca-certificates

  测试一下是否成功!

  #sudo certutil -d sql:$HOME/.pki/nssdb -A -t TC -n "goagent" -i /opt/goagent/local/CA.crt

参考:
  官方帮助
  Git分支管理策略EN
  Git分支管理策略
  GitHub上分享代码
  Git权威指南
  git快速入门
  图解Git常用命令
  常用命令
  简易指南

posted @ 2012-11-27 17:22  WenEric  阅读(501)  评论(0编辑  收藏  举报