使用背景:现在我在公司gitlab上一个项目里,需要将自己写的代码同步到gitlab上(初次配置) 参考:https://mp.weixin.qq.com/s/Bf7uVhGiu47uOELjmC5uXQ

一 下载gitlab上项目

对于初次配置,我们需要下载gitlab上面项目,找一个路径,使用以下命令克隆远程项目
image.png

  1. git clone git@git.touch-spring.com:zhengxianyi/GitStudy.git

image.pngimage.png

二 IDEA集成git

上面我们已经下载了远程项目GitStudy,我们在本地上创建了一个Python项目pythonGitStudy,现在我们想在pythonGitStudy目录中开发。我们将GitStudy文件夹中文件复制到pythonGitStudy,这样在pythonGitStudy文件夹中开发时,直接可以管理远程仓库信息
image.png

三 Git操作

add

git add 文件名

#或者 add . 添加所有文件
git add .

commit

pythonGitStudy中新建一个readme.txt文件,此时pycharm会提示是否加入git缓存区,点击,然后打开命令行使用以下命令进行commit

git commit -m "wrote a readme file"

或者点击:
image.png
此时使用以下命令查看状态

git status

image.png

push

使用以下命令推送到远程服务器

git push

image.png
此时在远程服务器上可以看到刚在创建的readme.txt创建成功
image.png
pycharm可以查看每次提交的日志,也可以使用git log
image.png

版本回滚

命令:

git reset --hard 版本号

如果在cmd里面使用提示more?的解决方案:https://blog.csdn.net/qq_32623363/article/details/78968077

如何查看版本号:

git reflog

image.png

我们在readme.txt进行了两次修改:

版本1 wrote a readme file

# 1
Git is a version control system.
Git is free software.

版本2 append GPL

# 1
Git is a version control system.
Git is free software.

# 2
Git is a distributed version control system.
Git is free software distributed under the GPL.

我们此时在版本2,现在想回退到上一版本[版本1]

git reset --hard 788f70b

image.png
此时发现readme.txt内容为[版本1]内容(但是此时内容不知道为啥为空)

撤销修改

情景一

你对readme.txt进行了修改,但还没使用git add,可以使用以下命令回退

git restore <file>

#或者
git checkout -- <file>

比如添加了:

# 3
Git tracks changes of files.
My stupid boss still prefers SVN.

文件变成了:

Git is free software.

# 2
Git is a distributed version control system.
Git is free software distributed under the GPL.

# 3
Git tracks changes of files.
My stupid boss still prefers SVN.

现在你想回退到未修改前(当然你可以手动删除多添加的部分,但是你修改的代码很多,你不知道修改了哪些部分,可以使用以下命令回退到未修改前):
首先使用git status查看一下:
image.png
使用

git restore readme.txt

发现文件回退到未修改前:
image.png

情景二

你修改了文件,而且使用了git add,但没提交(git commit
image.png
image.png
使用git status命令: