您现在的位置是:首页 >技术交流 >git学习网站首页技术交流
git学习
初始化仓库
git init 初始化
git clone 拷贝远程仓库
通过git clone命令可以拷贝远程仓库:

git文件状态
git文件状态分为:未跟踪、未修改、已修改、暂存

一开始初始化的仓库的文件都是未跟踪状态,使用git add 命令即刻将其变为暂存状态,git commit之后所有的文件变为未修改状态,我们上面通过git clone得到的所有文件一般都是未修改状态。
![![[Pasted image 20230521172351.png]]](https://img-blog.csdnimg.cn/31d66089f0504c96a808fb78e7b5b683.png)
这样我们就将test.txt提交到本地仓库
可以利用git reset head~ --soft 来取消这次提交
![![[Pasted image 20230521174208.png]]](https://img-blog.csdnimg.cn/3dccf5a5575342f0a5e36368ea6d5171.png)
我在本地commit了test.txt文件然后通过该命令取消
![![[Pasted image 20230521174323.png]]](https://img-blog.csdnimg.cn/796169d38a2a49f88464ee12698249fe.png)
然后利用git status发现原来的test.txt在暂存区了

git log利用该命令可以查看历史提交记录
由于项目老师没有给权限,因此我们换个仓库来学习。

这里无法push,我们利用token鉴权的方式来上传。
上传成功
分支

master和develop并行。
● master上始终是最稳定的代码,develop是正在开发的代码。
● feature则是某个开发为了自己的功能拉的分支。
不一般情况:
● develop正在开发,如果你上线突然被拒绝了,这时候就要从master上开一个热分支,或者release分支也行,改好之后在分别合并到其他分支。但,本人感觉release通常意味着终止。别在从release上拉分支了。
新建分支和切换分支比较简单,这里不再赘述。
接下来是合并分支:

feature1和freture2是master的分支,然后我分别在freture1和freture2里面新加了一个test_file文件。

我们看到文件冲突了,接着在修改文件处理冲突,然后commit

创建远程跟踪分支:
git checkout --track origin/branchName
储藏
如果我在master里修改了代码,但是没有commit,这个代码的修改会带到我要checkout的那个分支上。但一般情况下我们不能直接commit没有完成的代码,因此我们可以利用git stash命令

当我们修改完bug可以利用git stash apply命令来获取之前存储的信息。
git stash apply stash@{1} ///恢复到某个存储
git stash list //列出所有情况
git stash drop stash@{i} //将第i个删除
如果目录不干净的话我们无法再apply。
ReSet功能
git reset head~ --soft
- head的波折号就代表第几次的提交。
- –soft就是取消commit状态但是git add的不会取消
- –hard就是不仅取消暂存区还会取消所有修改
rebase
rebase操作确实非常方便,能让我们的提交记录变得好看点。


但是如果我的代码提交到了远程,别人需要从我的代码去修改,那这时候就不能rebase。
在GoLand中使用git
GoLand中常用的操作和以上类似。





U8W/U8W-Mini使用与常见问题解决
QT多线程的5种用法,通过使用线程解决UI主界面的耗时操作代码,防止界面卡死。...
stm32使用HAL库配置串口中断收发数据(保姆级教程)
分享几个国内免费的ChatGPT镜像网址(亲测有效)
Allegro16.6差分等长设置及走线总结