前期准备
- 设置个人信息
git config --global user.name "username" git config --global user.email "xxxxx@xxxxx.com"
- 利用ssh方式通讯,使用公钥省去输入密码的麻烦
ssh-keygen -t rsa -C "xxxxx@xxxxx.com" //# Creates a new ssh key using the provided email cat ~/.ssh/id_rsa.pub //查看公钥 `ssh -T git@git.oschina.net //返回Welcome to Git@OSC, yourname! 表示成功
- 修改默认代码提交方式(可忽略)
git config --global push.default matching
或者git config --global push.default simple
不带任何参数的git push,默认只推送当前分支,这叫做simple方式。此外,还有一种matching方式,会推送所有有对应的远程分支的本地分支。Git 2.0版本之前,默认采用matching方法,现在改为默认采用simple方式。如果要修改这个设置,可以采用git config命令。
关联代码库
-
克隆远程代码到本地
git clone https://git.oschina.net/eyasfhf/aitangcore.git
-
提交本地代码到远程库
git init //初始化 git remote add origin git@github.com:YotrolZ/helloTest.git//添加远程地址git branch --set-upstream-to=origin/master master//关联master分支到远程git push -u origin master //上传本地代码,由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来 git pull origin master//拉远程代码
提交代码
- 提交代码
git add ..//添加修改文件git commit -m "提交信息"//提交到本地库git push//将本地库代码发送到远程库
- 多人提交代码
git stash //将当前所有操作和上次commit之间产生的差异文件缓存 git pull//拉取其他人提交的代码git stash pop//取出最近一次缓存文件......//再次按照单人提交代码步骤提交
- 合并分支(merge) develop合并到master,首先确认两个分支本地代码为最新代码
git checkout mastergit pull//回到主分支并获取远程最新的修改git checkout developgit pull//回到工作分支并获取远程最新的修改git checkout master//回到主分支 git merge develop//合并工作分支的修改,遇到冲突需要修复冲突git push //推送修改到远程
其他命令
- 标记版本
git tag//查看所有标识 git branch temp_20150728//创建分支
-
删除本地分支 git branch -D test(分支名称)
-
取消本地commit
git log//获取上次commit的id git reset --soft//回滚到上次commit状态,代码未提交状态git reset --hard//回滚到上次commit状态
-
修改远程代码库地址
git remote set-url origin URL
-
更新远程分支
git fetch –p
//远程分支已经删除或变动,本地记录的远程分支还是存在,需要刷新下本地记录的远程分支 -
本地分支关联远程分支 切换到本地分支
git branch -u origin/develop
-
查看这2个分支的共同父节点 git merge-base A B