mac git五大使用场景
场景一:git本地库
1.1 在本地文件夹里新建git目录,cd到该目录下,执行git init
command+shift+. 可以看到git文件多了一个.git的隐藏文件
1.2 在git目录下添加任意text文件
1.3 git add &&git commit
git add 告诉Git,把文件添加到仓库
git commit 告诉Git,把文件提交到仓库 -m
后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。
1.4 修改a.txt文件如下
1.5 git status 查看状态
红色:该文件被添加或者修改,但是没有添加到git暂存区
绿色:该文件在暂存区,但没提交到本地版本库
1.6 git diff 查看修改的内容
1.7 提交修改
知道了对txt作了什么修改后,再把它提交到仓库就放心多了,提交修改和提交新文件是一样的两步,第一步是git add,然后查看状态git status
1.8 git commit 提交到仓库
1.9 我们试着自己练习,进行第二次修改,然后git log查看从最近到最远的提交日志
HEAD指向当前版本
1.9.2 git log --pretty=oneline 只显示一行
1.10 版本回退 git reset --hard HEAD^
HEAD代表当前版本 往上100个版本可以写成HEAD~100
cat a.txt查看文本 发现回到第一次修改后的版本
1.11 git reflog查看每次命令 并显示操作id
1.12 git reset --hard id(5079ec6) 通过版本号回到最新版本
场景2:git远程版本库
2.1 在github新建一个仓库,找到他的ssh地址🔗,将本地仓库与远程仓库关联
git remote add origin git@github.com:GRIT-fighting/githw.git
2.2 将本地仓库内容推送到远程仓库上 关联本地master分支与远程新的master分支
git push -u origin master (之后的push 不需要-u)
1.2 将内容推送到远程库
这里将a.txt做第三次修改commit之后push
git push origin master
2.3 从远程库里clone
git clone git@github
会把远程仓库的内容克隆到本地文件lstm中
2.4 fetch与pull
fetch是将远程主机的最新内容拉到本地,不进行合并
git fetch origin master
pull 则是将远程主机的master分支最新内容拉下来后与当前本地分支直接合并 fetch+merge
git pull origin master
场景三:团队项目中的分叉合并
3.1 创建新的分支
git checkout -b mybranch
3.2 切换分支
git checkout master
git branch 查看分支
3.3 尝试在分支上对a.txt文件进行修改并查看git log
3.4 合并分支
git merge mybranch
把mybranch上的工作合并到主分支上,我们可以看到master中a.txt文件的变化
下图可以看到,merge之后master分支上a.txt文件发生了变化
3.5关于团队工作流程 老师这里讲的很清楚
不断在自己的分支上进行add 和commit之后一定要记得pull最新版本后再merge 并push自己的代码
场景四:Git Rebase
我在mybranch上又多加了两次rebase 和chearup的修改,然后执行
4.1 git rebase -i HEAD^^^
4.2 输入i 进行编辑模式
:wq保存并退出 :q退出
我删除了其中一行之后会有错误,但是git rebase --abort 可以撤销之前的rebase操作
4.3 打开文件a.txt保留你需要的版本
删除其中一行后,出现冲突,
因为rebase不知道当前该采用哪个版本,
看a.txt文件会出现不同版本的情况,
这时选择你要留下的版本保存a.txt后 git rebase --continue
这时查看git log发现我们删除的版本已经不存在
场景五:Fork + Pull request
5.1 对别人的仓库,点击右边fork
在自己的仓库中查看
5.2 对他的文件做修改之后,发起pull request
5.3 提交修改之后 会显示代码对比
5.4 create pull request
我们对大神的文章瞎pull request 赶紧close oull rerquest跑路