//从github仓库克隆代码到本地
git clone <github仓库地址>
//删除原本的远程仓库origin
git remote rm origin
//添加新的远程仓库origin,一般为自己账号的fork
git remote add origin <你fork的仓库地址>
//添加新的远程仓库upstream,一般为项目的源仓库
git remote add upstream <项目源地址>
//查看两个远程仓库orgin和upstream是否设置正确
git remote -v
关于远程仓库origin和upstream的设置,我们一般从upstream源pull,向origin源push(然后提交pr)
//在本地建立新的开发分支并切换到此分支上
git checkout -b <新建分支名>
//进行开发,将修改,新增的文件进行add
git add XXXX
//在commit之前输入pre-commit,标准化代码格式。如果源代码库没有设置,就跳过此步
pre-commit
//进行commit,注意message最后要加入test=develop,才能进行一系列测试。如果源代码库没有相关设置,跳过此步
git commit -m "XXXX test=develop"
//将本地的这个分支push到origin(即自己fork的仓库),此时提示信息会给出提交pr的网址,此时访问网址发起pr即可
git push <远程主机名> <本地分支名>:<远程分支名>
//如果在合入时提示代码出现冲突,需要重新在本地解决冲突。将upstream(项目源代码库)中develop分支拉到本地合入
git pull <远程主机名> <远程分支名>:<本地分支名>
//git fetch <远程主机名> <远程分支名>:<本地分支名> 没试过 不确定行不行
//此时会提示出现冲突,按照提示修改有冲突的文件后重新add, pre-commit, commit, pull, push即可。
//如果push后需要再次修改代码,重新进行add, pre-commit, commit, push即可,注意还是要push到远程提交pr的分支
其他问题:
1. 第一次进行github用户配置:
//进行github用户配置
git config –global user.name <XXX>
git config –global user.email <your email address>
生成密钥并配置:自行搜索即可
在~/.ssh中生成config文件,如果配置多个git环境,只需将每个git环境配置都写入config文件即可。指定port端口可以避免默认22端口被占用
Host github.com
User <你的github登录邮箱>
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443
测试连接是否正常
ssh -T git@github.com
2. 将多个commit合为一个commit:
git rebase ...
https://blog.youkuaiyun.com/coderhuhy/article/details/45567031
3. 修改上次commit:
git add <进行了修改的文件>
git commit --amend
git push ...
4. 回退到历史版本:
//--hard:全部回退 --soft:保留源码,只回退到commit 信息到某个版本.不涉及index的回退,如果还需要提交,直接commit即可
git reset --hard commit_id
5. 舍弃本地修改,强制变基/与upstream端保持代码库和历史一致
git fetch --all //只是下载代码到本地,不进行合并操作
git reset --hard upstream/develop //把HEAD指向最新下载的版本
6.合并多个commit
git rebase -i HEAD~6 // 把顶部的n个版本聚到一起进入编辑页面
然后把需要压缩的commit前面的pick都改为s(squash的缩写)
7. cherry-pick
切换(checkout)到要转移到的分支上
git cherry-pick <commitHash>