Git
Git

初始化
用户设置
设置用户名
git config –global user.name lwj
设置邮箱
git config –global user.email 619500828@qq.com
初始化
git init
多了一个 .git 文件夹,git 的所有记录都在此文件夹中
默认位于 master (主分支)
文件
创建文件
echo “版本1” > lao.md
lao.md 为我们创建的文件;版本1 为在文件中添加的内容
查看状态
git status
用于查看目前分支,以及需要做什么步骤

处于 master 分支
刚刚添加的文件 lao.md 为 untracked files,需要添加到缓存区
添加文件到暂存区
git add lao.md
提交文件
git commit 会进入 vim 编辑器
git commit -m “版本2和版本3” 加上 -m 和提交信息 则不会进入 vim
查看之前版本
git log

不需要提交的文件
创建 .gitignore 文件
echo > .gitignore
在 .gitignore 中写上不想提交的文件 rubbish.md,git status 后就不会显示该文件了

配置 .gitignore 后

分支
一个分支代表一条独立的开发线。
使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。

创建分支
git branch 分支名
查看分支
git branch
切换分支
git checkout 分支名
删除分支
git branch -d 分支名(会有提示)
git branch -D 分支名(不会有提示,非常确定要删除时使用)
删除远程分支:git push origin –delete name
分支合并
把别的分支合并到当前所处分支
git merge 分支名
远程仓库
拷贝远程仓库到本地
直接 download,则版本历史和记录(.git)不会下载
使用 git clone url 更好
查看本地仓库与远程仓库的联系
git remote -v
更新远程仓库
git push
2021年后不支持通过账号密码,而要生成个人 token
更新本地仓库
git fetch (远程仓库/分支名) 更新本地仓库,本地文件(工作区)并不会改变
git diff 远程仓库名/分支名 查看工作区和本地仓库的区别
如果没问题则可使用 git pull 把远程仓库的内容直接整合到工作区
vscode 中的 git
初始化仓库
相当于 git init

一些操作

左下角切换分支

stash
stash 命令能够将还未 commit 的代码存起来,让你的工作目录变得干净。
使用场景
1.需要临时切分支时
2.多人同时修改同一分支时

相关命令
1 |
|
当有多条 stash,可以指定操作stash,首先使用stash list 列出所有记录:
1 |
|
应用第二条记录:
1 |
|
pop,drop 同理。
版本回退
场景一:如果想将代码恢复到之前某个提交的版本,且那个版本之后提交的版本都不要了,就可以使用 git reset
原理: git reset 的作用是修改HEAD的位置,即将HEAD指向的位置改变为之前存在的某个版本
操作:
- 查看版本号:git log,也可以上代码托管网页上查看history,找到需要回滚的目标版本号
- 使用“git reset –hard 目标版本号”命令将版本回退
- 使用“git push -f”提交更改,此时如果用“git push”会报错,因为我们本地库HEAD指向的版本比远程库的要旧,用“git push -f”强制推上去。
场景二:如果我们想撤销之前的某一版本,但是又想保留该目标版本后面的版本,记录下这整个版本变动流程,就可以用这种方法。
原理:我们commit了三个版本(版本一、版本二、 版本三),突然发现版本二不行(如:有bug),想要撤销版本二,但又不想影响撤销版本三的提交,就可以用 git revert 命令来反做版本二,生成新的版本四,这个版本四里会保留版本三的东西,但撤销了版本二的东西。
操作:
查看版本号:git log,也可以上代码托管网页上查看history,找到需要撤销的目标版本号
使用“git revert -n 版本号”反做,并使用“git commit -m 版本名”提交:
(1)反做,使用“git revert -n 版本号”命令。
注意: 这里可能会出现冲突,那么需要手动修改冲突的文件。而且要git add 文件名。
(2)提交,使用“git commit -m 版本名”
- 使用“git push”推上远程库:
只提交部分文件
1.暂存待提交文件
git add src/components
2.忽略其他文件,把现修改的隐藏起来,这样提交的时候就不会提交未被add的文件
git stash -u -k
3.git commit
4.git pull
5.git push
6.git stash pop
copy主分支,创建新分支
1.切换到主分支
git checkout master
2.把主分支代码拉到本地
git pull
3.切换到我们的分支
git checkout name
4.将刚刚拉下来的主分支代码和我们的分支合并
git merge master
如果出现合并失败,使用以下方案?
1、git status 查看文件是否都已提
2、git add . 或 git add ./ 把文件提交到暂存区
3、git commit -m ‘feat:改动说明’ 提交到仓库区
解释:出现这种状态是因为你把拉下来的主分支(master)代码做了一些改动,哪怕修改一个标点符号也是不能合并,需要提交完才可以合并
获取新建的远程分支
git fetch (本地同步远程)
git checkout -b 本地分支名 远程分支名 (新建与远程分支关联的本地分支)
使用顺序注意
https://blog.csdn.net/aaaaa1994/article/details/90340224 实习期间遇到了同样的问题
1.本地修改与远程代码无冲突,优先使用
pull -> commit -> push
2.本地修改与远程代码有冲突,优先使用
commit -> pull -> push
pull 是为了本地 commit 和远程 commit 的对比记录