前期准备
- 设置个人信息
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 master
git pull
//回到主分支并获取远程最新的修改
git checkout develop
git 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