初期工作
打开cmd,ping github.com看是否成功,如果失败,参考http://t.csdnimg.cn/ykQhx
然后进入正题,本地新建一个空文件夹,右键git bash here打开,使用如下命令克隆
git clone https://github.com/Boat2U/oss101.git
使用cd命令进入到克隆的文件夹下,创建分支team-<队长学号>
git branch // 查看本地分支
git branch team-10205501433 // 新建本地分支team-10205501433
git branch
git checkout team-10205501433 // 切换到本地分支team-10205501433
git push origin team-10205501433 或者 git push origin team-10205501433:team-10205501433 // 将新建分支team-10205501433推送到GitHub的team-10205501433分支上
// 相关命令
git branch -r //查看远程分支
git branch -a //查看本地仓库和远程分支 (a 是 all 的简写)
因为创建PR(pull request)必须要有新东西提交,所以执行以下命令先提交一个空文件
touch null.txt // 创建一个新文件
git add . // 将当前工作路径下的所有文件添加到 Git 的暂存区中
git commot -m "新建分支并提交了一个空文件" // 将暂存区中的所有文件提交到 Git 仓库
git push origin team-10205501433
github上切换到新建分支并刷新可以看到新的内容,点击弹出来的pull request创建PR(先占坑)。
回到本地git bash,如果删掉这次操作的commit历史(注意:相关PR也会被删)
使用git log查看提交commit history, 找到要删除的记录
主要用到如下命令
git rebase -i commitID // commitID为要删除的commit的前一条的id
完整操作具体如下:
git log // 查看提交历史
找到要删除的commit,然后它的上一条 commitID 就是目标 commitID ,
git rebase -i 114c8b5bd4b873d4d7c4ce0abcef7af012db101a
进入文件操作界面,需要编辑(输入i)
找到要删除的commitid ,将pick修改成drop
编辑完成,按Esc退出编辑模式 ,然后按Shift+“;”,再输入wq!(保存文件的写入修改)退出。(q!是不保存修改)
再执行git log可以看到该条记录已经被删了
然后需要更新到远程仓库中
以下操作都是正常更改文件提交的操作
————————————————————分界线————————————————————
(当然,也需要git add .和git commit)
git pull origin team-10205501433 // 将本地代码库与最新的远程代码库同步:origin代指远程仓库名 后面是分支名
做出更改,然后git add .和git commit,然后推送
git push origin team-10205501433 // 推送到远程
具体来说,git pull 的作用是从远程仓库中获取指定分支的最新代码并将其合并到当前本地分支。而-- rebase 则是指要使用 git rebase命令将本地修改移植到更新后的代码库中,并以此保持提交历史“干净”。
———————————————————分界线完———————————————————
而对于更改了commit history的行为,改变历史的行为是推不上去的,你要强制push,否则工作区干净时提交也会失败
git push origin +team-10205501433 // + 就是强推这个分支