配置git
安装完 Git
之后,要做的第一件事就是设置自己的用户名和邮件地址。因为通过 Git
对项目进行版本管理的时候,Git
需要使用这些基本信息,来记录是谁对项目进行了操作:
git config --global user.name "用户名"
git config --global user.email "邮箱地址"
检查配置信息
// 查看所有的全局配置项
git config --list --global
// 查看指定的全局配置项
git config user.name
git config user.email
初始化本地仓库(本地已有git仓库,不需使用此命令)
git init
查看仓库状态
git status
添加所有更改到暂存区
(tips:需了解在git add 可省略,可以和git commit合并)
git add .
从暂存区提交更改到本地仓库区,并且添加描述
git commit -m '提交代码的描述'
合并git add和git commit
适用于已经被跟踪过的文件,可直接使用合并命令提交
git commit -a -m '提交描述'
//或者
git commit -am '提交描述'
撤销上一次commit,并保存住修改的内容
git reset --soft HEAD^
查看git提交记录
git log
推送到远程分支
git clone '仓库地址'
git push
创建远程分支并关联当前本地分支
当第一次推送新创建的分支,可使用命令创建远程分支关联当前分支,以dev为例
git push --set-upstream origin dev
拉取指定远程分支代码合并到本地分支
(如已处于拉取的线上分支的下游分支,可直接git pull拉取线上代码),注意解决代码冲突,以拉取远程master分支为例
git pull origin master
查看本地和远程所有的分支
git branch -a
克隆远程仓库到本地
git clone 仓库地址
合并本地指定分支到本地当前分支
(如下:合并dev分支到当前分支)
git merge dev
切换本地当前分支到本地其他分支
以切换到本地dev分支为例
git checkout dev
基于当前分支创建新分支
git checkout -b 新分支名
回退仓库版本
(id是仓库版本的标识),特别注意:轻易不回退版本,在回退前需和开发组长协商
git reset --hard id
强制提交
和回退命令搭配使用,一定要十分谨慎,以免有些代码难以找回
git push --force
//或者
git push -f
注意:以上操作必须十分熟悉,要时刻牢记,下方作了解,知道有这个操作,用到的时候查阅
修改本地分支名称
git branch -m 原来的分支名 现在的分支名
向已提交中继续添加文件
如果我已经使用git commit -m 'xxx'将代码提交到了本地仓库,但是我后续还想向这个提交中添加文件,那我该怎么办呢?
首先将你想添加到文件使用git add xxx加入暂存区
然后运行以下命令:
git commit --amend
这将会打开一个编辑器,让你编辑上一次提交的提交信息。如果你只是想要添加文件而不改变提交信息,你可以直接保存并关闭编辑器。
撤销上一次的push
如果你想撤销远程仓库的更改,并且希望保留本地的更改(即撤销commit,但不撤销代码更改):
git reset --soft HEAD~1
git stash
git push origin HEAD --force
git stash pop
如果你想完全撤销最后一次的commit和push,并回到之前的状态:
git reset --hard HEAD~1
git push origin HEAD --force
保存当前的工作状态
(将本地尚未提交的代码均剪切并储存)
git stash
使用场景:
- 当在一个分支的开发未完成,需要切换到另一个分支进行开发时,可以使用git stash来保存当前的工作状态。
- 遇到bug修复或紧急任务,但不想提交当前未完成的代码时,可以使用git stash来保存当前工作状态,然后切换到修复bug的分支。
- 当需要同步远端代码,但本地代码未完成或存在冲突时,可以先使用git stash保存本地修改,然后进行同步。
同步本地stash的代码
将git stash剪切并储存的代码再次释放出来
git stash pop
遴选指定的commit到当前分支
tips:遴选的使用场景是,有的时候,你在自己分支上提交了很多次commit,但是突然上线的一个东西,只需要上线其中一个commit或者几个commit,所以这个时候,直接合并你的分支肯定不行,所以我们就要使用遴选,选取指定的commit
git cherry-pick <commit-hash>
//例:git cherry-link 51fa8307ba2acdf63f47fa820f7df41d9ce33340
遴选两个commit之间的范围到当前分支
如果是遴选的不是范围,而是指定的几个commit,不是连续性的,多个hash之间空格隔开就好
git cherry-pick <commit-hash-a>^..<commit-hash-b>
//例:git cherry-pick b9bc88cf9635c236e3abfdc57d80c1c453e99875^..3d7023ae8dd3e4af4fd56f4f0ddb572d8f3b69d6
连接远程仓库
git fetch
查看远程仓库连接地址
git remote -v
设置远程仓库连接地址
git remote set-url origin 远程仓库地址
Git报错-refusing to merge unrelated histories 或者 git pull <remote> <branch> 解决办法
git pull origin master --allow-unrelated-histories
本地项目无仓库状态连接远程仓库
//1、初始化本地文件夹
git init
//2、查看本地文件更改的状态
git status
//3、将本地文件添加到暂存区
git commit -m "对此次提交的注释"
//4、在 github 上创建一个仓库(和本次的 demo 关联的),记得勾选上 README.md(复制仓库地址)
//5、然后在 gitBash 中输入
git remote add origin <仓库地址>
//6、最后ok~
git push -u origin main
出现git pull <remote> <branch>的解决方法
$git pull origin master --allow-unrelated-histories
可视化操作更换远程仓库地址(以VScode为例)
1.找到git隐藏的设置,先关掉git隐藏,如下,先删除**/.git,如需隐藏,再添加即可
2.找到.git文件夹中的config文件,修改origin里的url,然后保存,这样就可以了