Github和vscode

这里写目录标题

  • 1 VSCODE Install
    • 设置中文
    • C++环境配置
  • 2 Git Introduction
      • 实现过程
  • 3 分支管理
    • 3.1创建分支与合并分支
    • 3.2解决冲突
    • 3.3分支策略
    • 3.4Bug分支 储藏现场工作去修复bug
    • 3.5feature分支,新功能开发 不想要。想删除分支
    • 3.6多人协作
    • 3.7 推送分支
    • 3.8哪些需要推送 哪些不需要
    • 3.9抓取分支 开发之前克隆到本地来修改
    • 3.10 多人提交冲突解决办法 要求每次都要先pull
  • 4标签tag
  • 5 实践

1 VSCODE Install

下载地址
正常安装

设置中文

在插件中搜索chinese,并且install
Github和vscode_第1张图片
快捷键Ctrl + Shift + P打开vscode的命令框,并输入Configure Display Language
选择chinese

C++环境配置

参考教程

mingw下载不下来的话,从下面的链接里面下。
链接:https://pan.baidu.com/s/1BxeHO-soXjypCTL8FloIYw
提取码:utga

2 Git Introduction

Git 是分布式版本控制系统。
学习地址
可以记录每次文件的改动,还可以一起编辑,还可以查看某次改动
类似这样
Github和vscode_第2张图片

实现过程

1:在vscode中新建一个文件 不包含英文 并在终端中切换到对应的界面。如图所示
Github和vscode_第3张图片
2:通过git把 目录变成git 可以管理的仓库

事实上 版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
Github和vscode_第4张图片
生成.git,其是git用来跟踪仓库的
(在这之前需要先链接账号和github)
3:添加文件
本地库的操作(已经有仓库了)

先进入库 git init
在关联远程库 git remote add origin [email protected]:xxx/GIT_DEMO.git
git add< file > 把文件添加到本地仓库(暂存区):
git commit -m < message > 把文件提交到本地仓库 把暂存区的所有修改提交到分支
Github和vscode_第5张图片

如果我们对其进行修改

git status

查看仓库的状态,哪些文件被修改了 还没有准备提交到仓库

git diff

查看具体哪些被修改了
修改完后没有什么问题 那么就可以提交了 其顺序和提交新文件是一样的
git add git commit

回退和返回
git log查看最近到最远的提交日志
git reset --hard commit_id 通过id来穿梭各个历史版本
HEAD指向的版本就是当前版本 HEAD^ 上一个版本
要重返未来,用 git reflog查看命令历史,以便确定要回到未来的哪个版本
你回退之后文件本身就会变

多次修改
多次修改后都要 git add
不然你git commit 的时候只会提交最近一次git add 的文件

撤销修改

  1. 情况1:没有git addgit commit

git checkout -- file
撤销这次的修改,回到最近一次git add 或者git commit 的状态

  1. 情况2:有git add 没有git commit

git checkout -- file
暂存区的修改撤销掉(unstage),重新放回工作区: 就是git add 了但是没有commit,此时就回到了上面的情况

  1. 情况3:git addgit commit 了 没有推送到远程库

如果git commit 了,但是还没有推送到远程库,那么可以使用回退和返回 git reset --hard commit_id 来回到之前的

删除文件
你在本地删了文件,git status可以看哪些文件删了
git rm test.txt来删除版本库里面的文件
如果删错了 调用git checkout -- file 就可以回来了
推到远程库
首先在你的本地库中运行,实现关联远程库
git remote add origin [email protected]:xxx/GIT_DEMO
origin就是远程库的默认叫法 xxx是自己的github账户名,
然后就可以把本地库推送到远程库上,
git push -u origin master
把当前分支master推上去,-u是指第一次推送的时候把master和远程的master关联。
后面只要
git push origin master

删除远程库和本地库之间的绑定
git remote rm origin
这不是删掉远程库 要删掉需要 去github端删除。

从远程克隆一个下来
在多人开发中,每个人各自从远程克隆一份就可以了
git clone [email protected]:xxx/xxx.git

3 分支管理

分支就是你要工作的时候创建自己的一个分支,别人看不到的,你可以自己提交,开发完成后合并到原来的分支上。

3.1创建分支与合并分支

每次提交之后,就会产生一条线,我们的head指向这个线
Github和vscode_第6张图片
我们可以创建新的分支dev,然后head就指向了开的新分支

Github和vscode_第7张图片
对于合并也十分简单,只要把主分支的指针指向dev,并且把dev删掉就可
Github和vscode_第8张图片

实战例子

 git checkout -b dev//创建一个dev的分支,然后切换到该分支
 或者
 git switch -c dev

等价于

git branch dev  //开新分支
git checkout dev//切换分支

查看分支 git branch
在这里插入图片描述
这时候你修改的文件是不会影响 master的。当完成修改后,git addgit commit
把他合并回去

git merge 把指定的分支合并到当前的分支中。

git checkout master //切换到默认分支   新版本的git 使用 git switch -c dev  更加合理 -c是指新的
git merge dev//把dev分支合并到当前分支,就是master
git branch -d dev //删除dev分支

Github和vscode_第9张图片

3.2解决冲突

Github和vscode_第10张图片
两者都有新提交
解决的办法是:

解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容

做法是修改在保存
git add readme.txt
git commit -m "conflict fixed"
Github和vscode_第11张图片
git log --graph --pretty=oneline --abbrev-commit 可以查看分支合并的情况
完成后删除feature1分支
git branch -d feature1

另一种办法,就是在合并的时候加上–no-ff的参数 git merge --no-ff -m "merge with no-ff" dev
这样在合并的时候,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。

3.3分支策略

Github和vscode_第12张图片

3.4Bug分支 储藏现场工作去修复bug

在遇到bug的时候建一个临时分支来解决,此时需要保存目前没有完成的进度
可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作

git stash

在你完成bug修复后。就要回到原来的分支上干活,

git stash list//查看储存的

有两种办法恢复

  1. git stash apply+git stash drop 恢复后先不删除 除非调用第二个
  2. git stash pop 恢复后把stash删除了

可以多次stash 恢复的时候
git stash list然后,选择指定的恢复
git stash apply stash@{0}

Bug修改合并到当前的分支
在master分支上修复的bug,想要合并到当前dev分支,可以用git cherry-pick 命令,把bug提交的修改“复制”到当前分支,避免重复劳动。

3.5feature分支,新功能开发 不想要。想删除分支

  1. 先开个新分支
    git switch -c new_feature

  2. git switch dev切换回dev准备合并,突然不想要了。

  3. git branch -D new_feature new_feature还没被合并,需要强制删除

3.6多人协作

远程仓库克隆时,其实git把本文和远程对应起来。
如果要查看远程仓库的信息

  • git remote -v 查看详细的远程库信息 显示抓取和推送的权限。

3.7 推送分支

git push origin dev
指定dev分支推送到远程库对应的远程分支上。

3.8哪些需要推送 哪些不需要

Github和vscode_第13张图片

3.9抓取分支 开发之前克隆到本地来修改

git clone [email protected]:xxx/GITDEMO.git
此时,只能看到本地的master分支,如果想在dev分支上开发;

git checkout -b dev origin/dev//创建远程origin的dev分支到本地

这样就可以是不是的修改,并把dev分支push到远端

git add env.txt
git commit -m "add env"
git push origin dev

如果小伙伴已经推送了他的提交,然后我也要提交,那么直接推送是不行的,会冲突

3.10 多人提交冲突解决办法 要求每次都要先pull

先用git pull把最新的提交从origin/dev抓下来,然后,在本地合并,解决冲突,再推送:
Github和vscode_第14张图片
Github和vscode_第15张图片

4标签tag

Github和vscode_第16张图片
Github和vscode_第17张图片

5 实践

首先在远程建一个仓库,然后 git clone 然后把代码粘过去
远程新建一个分支之后 git checkout -b dev origin/dev
git add --all
然后直接git push dev或者没有第二步骤直接git push dev就可以了

第二次开发的话
git pull <远程主机名> <远程分支名>:<本地分支名>

git add 和commit之后

git push <远程主机名> <本地分支名>:<远程分支名>
如果本地分支名与远程分支名相同,则可以省略冒号:
git push <远程主机名> <本地分支名>

你可能感兴趣的:(学习,github和vscode学习)