Git使用心得

  在孟老师的课堂上初次接触到分布式的版本控制系统Git,谨以这篇随笔记录Git四大场景中的常用操作

 

场景一:Git本地版本库的基本用法

 

首先用git init在文件夹repo1中初始化一个git存储库,用git status查看当前工作区状态

命令git add readme.md将文件readme.md存入暂存区,命令git commit -m "original"将暂存区内的文件提交到本地版本库,用双引号括起来的内容作为提交日志帮助用户了解此次提交的主要改动。

 

接下来考虑版本间的切换问题,先将当前readme.md更新三次,分别为A,B,C版本,当前为最新版本C,用git log查看当前版本以前的所有提交信息

 

 

 这时候可以通过命令:git reset --hard HEAD^^/HEAD~100/commit-id/commit-id的前几个字符来回退到之前提交的版本,这里使用git reset --hard HEAD^^回到版本A

 

 

 如果回退过后想又想恢复到在A之后提交的B版本,可以用git reflog查看当前HEAD之后提交的记录,用git reset --hard commit-id/commit-id的前几个字符回到未来的指定版本

 

 

 场景一常用命令总结:

git init                                                         # 初始化一个本地版本库
git status                                                       # 查看当前工作区(workspace)的状态
git add [FILES]                                                  # 把文件添加到暂存区(Index)
git commit -m "msg”                                              # 把暂存区里的文件提交到仓库
git log                                                          # 查看当前HEAD之前的提交记录,便于回到过去
git reset —hard HEAD^^/HEAD~100/commit-id/commit-id的头几个字符    # 回退
git reflog                                                       # 可以查看当前HEAD之后的提交记录,便于回到未来
git reset —hard commit-id/commit-id的头几个字符                    # 回退

  

 

场景二:Git远程版本库的基本用法

 

可以用命令git clone URL将Github/Gitee上的版本库克隆到本地完成本地版本库的初始化,

 

 

 按场景一的方法修改提交库内文件后,命令git push可以把本地库推送到远程仓库,完成本地仓库与远程仓库的同步,

 

 

 命令git pull可以抓取远程仓库或分支合并到当前仓库当前分支

场景二常用命令总结:

git clone URL   # 克隆远程库到本地来初始化本地仓库
git pull        # 将远程库同步到本地库   
git push        # 将本地库同步到远程库

  

 

场景三:团队项目中的分支合并

 

首先用git clone或者git pull从远程仓库同步最新代码,命令git checkout -b mybranch为个人工作创建一个分支,并用命令git branch查看当前分支情况。

 

 

 完成一定的开发或修改任务,提交到本地库。

 

 

 最后用git checkout master切换回master分支,git pull将远程库同步到本地库,git merge --no-ff mybranch非快进式地合并到master分支,git push同步到远程库

 

 

 查看仓库网络图,合并操作如下:

 

 

 场景三常用命令总结:

git checkout -b [branchname]   # 创建新分支并签出到新分支
git branch                     # 查看所有分支及当前分支
git checkout [branchname]      # 签出到目标分支
git merge --no-ff [branchname] # 将目标分支非快进式地合并到当前分支

  

 

场景四:Git Rebase

 

git pull先将远程库同步到本地库,在远程库提交了三个版本的readme.md,

 

 在本地库也创建自己的分支并提交了三个版本的readme.md,

这时候使用git rebase -i HEAD^^^命令整理A B C三个版本,

 i键进入插入编辑模式,删去pick a845abe A 和 pick d0f8b46 B两行,Esc退出插入编辑模式,:wq保存退出,在编辑区解决冲突后存入暂存区,用git rebase --continue继续git rebase,修改C版本的提交日志,

 

 再用git log查看提交日志,发现A B两个版本都不在了,

 

 再切回master分支,将远程库同步到本地库,合并mybranch到master,推送到远程仓库,

 

 查看仓库网络图:

 

 “罗”代表远程库上直接提交,‘L’代表本地mybranch分支的提交,本地branch上A B两个版本的提交经整理后不再出现在远程仓库的网络图上。

场景四常用命令总结:

git rebase -i HEAD^^^  # 整理HEAD及之前共n个提交版本,n为^个数

  

 

小结

 

VSCode中的Git版本控制,绝大多数操作都已经转化成图形界面操作,学习起来更加方便,但掌握这些操作的具体指令,能让我们对git指令的内部含义有更深刻的理解。

 

参考文献:https://mp.weixin.qq.com/s/Km5KuXPETvG0wCGHrvj9Vg 

 

posted @ 2020-10-11 14:29  至此流年丨各天涯  阅读(94)  评论(0)    收藏  举报