git使用心得

备注:高级软件工程

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

正文

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

  因为vscode已经集成了git所以不用再重新下载git了。

  打开vscode建立文件夹后,再打开git,点击初始化存储库。

  

  成功后,查看隐藏文件会有.git文件出现,初始化成功。

  

  执行git status命令即可查看Git本地版本库当前 workspace 的状态。

 

 

 

  这里以绿色U标记的文件为没有添加到版本库进行跟踪的文件(Untracked files)、以橙色M标记的文件为已修改(Modified)未提交的文件(Changes not staged for commit)。只要在【更改】列表里的文件上点击加号“+”即可暂存更改(git add FILES),是将更改的文件加入到【暂存的更改】列表里,点击撤销符号即可放弃更改(git checkout -- FILES / git checkout .),是将该文件中的更改清除掉。

        

 

  这两步操作对应的命令分别是git add 和git reset

  只要【暂存的更改】列表里有文件就可以直接点击对号“√”(Ctrl+Enter)将暂存的文件提交到仓库中,只是在提交之前会强制要求输入提交日志消息。

  

  这是用 git log查看提交日志 并且用 git reset --hard ID 回退到某个版本

  

 

  

  通过git reset —hard 回退之后,HEAD指向的不是最新的版本,而git log只能查看HEAD及其之前(时间更早)的提交记录,要回到未来那就要有办法查到HEAD指向的版本之后(时间更晚)的提交记录。就是上面的git reflog。

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

  

  如果您已经在Gitee.com或者Github.com等网站上创建了Git版本库,可以通过git clone命令,将版本库克隆到本地完成本地版本库的初始化。

  也可以VS Code中打开源代码管理(Ctrl+Shift+G),如果当前没有打开的项目文件夹,可以看到源代码管理(Ctrl+Shift+G)界面上有【打开文件夹】和【克隆存储库】两个按钮,这时点击【克隆存储库】如下界面,即可输入存储库URL,按Enter键选择保存的目录位置,即可完成将远程的版本库克隆(git clone)到本地的任务。

 

 

 

 

 

使用git remote -v 可以查看更详细的远程存储库信息,包括fetch(抓取)的远程存储库URL和push(推送)的远程存储库URL。

 

 

git fetch、git push加上git clone是三个对远程存储库的基本操作,而git pull(拉取)是实际上是 git fetch + git merge(合并)的组合。

 

 

拉取过程中有可能会有冲突的情况,无法完成merge合并动作,这时需要对冲突的代码进行修改并提交到本地仓库,即利用git add、git commit -m等本地版本库的操作。

 这是用了git fetch 的情况

 

 用 origin/main可访问fetch过来的分支,再用merge可以达到pull的效果。

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

  团队项目的每一个开发者都采用的工作流程大致如下:

 

  1. 克隆或同步最新的代码到本地存储库;

  2. 为自己的工作创建一个分支,该分支应该只负责单一功能模块或代码模块的版本控制;

  3. 在该分支上完成某单一功能模块或代码模块的开发工作;

  4. 最后,将该分支合并到主分支。

  用这个或者
git checkout -b mybranch命令来创建分支,git checkout 来切换分支。

 

 

 接下来准备合并

 

 如果要保留mybranch分支为一段独立的分支线段,则需要使用--no-ff参数关闭"快进式合并"(fast-farward merge),这里不演示快速合并了。演示三方合并,并解决冲突。

 

 

 

 

场景四:Git Rebase

  用 git rebase 重新整理一下提交记录,git rebase -i [startpoint] [endpoint]其中-i的意思是--interactive,即弹出交互式的界面让用户编辑完成合并操作,[startpoint] [endpoint]则指定了一个编辑区间,如果不指定[endpoint],则该区间的终点默认是当前分支的HEAD。一般只指定[startpoint] ,即指定从某一个commit节点开始,可以使用HEAD^^、HEAD~100、commit ID或者commit ID的头几个字符来指定一个commit节点。

  

 

 

  该文本编辑器的用法与Vim大致相同(应该就是内置了一个vi文本编辑器),按i键进入插入编辑模式,可以删除某个版本,也可以修改提交日志消息;按ESC键退出编辑模式回到一般命令模式(Normal Mode),这时按:键进入底线命令模式,输入:wq保存退出、输入:q退出、输入:q!强制退出。

 

 

 

 

 

 

 

 删除后已经没有second版本了:

 

posted @ 2020-10-08 13:54  ITloveyang  阅读(160)  评论(0)    收藏  举报