设置用户名:git config --global user.name 'user_name'
设置邮箱:git config --global user.eamil 'user_email'
生成ssh密钥:要在设置用户名和邮箱之后实施
1.生成
cd ~/.ssh 删除该文件夹下边的内容
ssh-keygen -t rsa -C “user_email” 按3个回车,生成密钥
~/.ssh文件夹下生成 两个文件:id_rsa和id_rsa.pub
2.添加id_rsa密钥到ssh
ssh-agent bash
ssh-add id_rsa
3.在github上登录账号-->个人信息-->ssh密钥管理-->添加密钥-->将id_rsa.pub公钥粘贴进去
从远程第一次拉取代码到本地(ssh协议):在生成ssh密钥后实施
1.git clone +ssh(ssh是github上项目的ssh地址)
2.git branch -a 查看远程分支
3.git branch –set-upstream 本地新建分支名 origin/远程分支名+git checkout 本地新建分支名,或者git checkout -b 本地新建 分支名 origin/远程分支名 拉取远程分支并且切换分支
从本地第一次推代码到远程
1.git init cd 到想要推送的文件夹将此文件夹交给git仓库管理 在windows中版本库中的.txt文件编码一定要是utf-8 不能直接 用Windows的记事本直接创建否则会乱码
2.git add . 跟踪所有文件 注意小点点
3.git commit -m "提交描述"
4.git remote add origin ssh(http) 关联远程仓库 ssh或者http协议
5.git pull --rebase origin master 获取远程库与本地同步合并(如果远程库不为空必须做这一步,否则后面的提交会失败)
6.git push -u origin master 推送代码
合并其他分支提交到当前分支
A分支合并单个提交到C分支 git cherry-pick +A分支commit编码(使用git log可查看编码) 基于C分支操作
合并连续多个提交 git cherry-pick commit1..commit9 不包含commit1
git cherry-pick commit1^..commit9 包含commit1
git checkout -b 分支B commit9 + git rebase --onto 分支C commit1^ 基于A分支创建一个新分支B rebase到C分支 实现了将A分支的commit1~commit9 合并到C分支上
cherry-pick冲突解决 1.git status 查看状态
2.手动处理冲突 git add.
3.git cherry-pick --continue
4.如果不想解决冲突回到cherry-pick之前的状态 直接 git cherry-pick --abort
合并分支上最后n次提交
1.git rebase -i HEAD~n
2.按i进入文本编辑模式 保留第一个提交的pick 下边的都改为s Esc-->:wq 保存并退
3.按i再次进入文本编辑模式 删除冗余的注释 保留自己想要的 Esc-->:wq 保存并退
4.如过出现冲突 git status -s 查看冲突的文件并手动解决冲突之后 git add . git rebase --continue 继续 如果不想继续 则发现 冲突后直接 git rebase --abort
5.git push -f 推送代码
对比俩个分支的差异
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------