【git】本地仓库同步远程仓库删除,添加,回退,发布

1. 删除操作更新工程到gitlab上

  1. 打开 git bash ,输入 git rm -r --cached filename ,其中filename为文件名。如果只是删除仓库文件而不删除工作区文件,注意一定要加上 --cached 否则会把工作区文件也删除
  2.  然后 git commit -m 'delete' ,
  3.  git push 即可提交到远程仓库,这时远程仓库文件也更新。

2.添加操作更新工程到gitlab上

  1. 打开 git bash ,输入 git add  . ;
  2. 然后 git commit -m '描述' ,
  3. git push 即可提交到远程仓库,这时远程仓库文件也更新。

3. 其他操作指令

  • 如果需要通过 .gitignore 文件来屏蔽文件,如 .idea ,可以如下操作:
  • touch .gitignore              创建.gitignore文件,然后在文件中输入需要屏蔽的文件或文件夹
  • git rm -r --cached .idea        删除远程仓库中的文件
  • git add .                    将.gitignore文件加入暂存区,注意不要使用git add *
  • git commit -m 'change'        提交到本地仓库
  • git push origin master        提交到远程仓库
  • git add . 和 git add * 的区别:git add . 会把本地所有untrack的文件都加入暂存区,并且会根据 .gitignore 做过滤;但是 git add * 会忽略 .gitignore 把任何文件都加入

4. git版本回退操作更新到gitlab上

推荐回退操作:

第一种:已 commit,并且push到了远程仓库;

  1. git reset --hard(撤销并舍弃版本号之后的提交记录)。

  2. git revert 版本号(版本号为要撤销的版本号)
  3. git push 推到远程更新仓库

第二种:已 commit,未push到远程仓库;

  1. git reset --soft 版本号(前一个版本号)
  2. git reset --mixed 版本号(前一个版本号)

本文 git 相关命令:

git reset:回退版本,可指定某一次提交的版本。git reset [--soft | --mixed | --hard] commitId。

git revert:撤销某个提交,做反向操作,生成新的commitId,原有提交记录保留。git revert commitId。

git status:查看文件在工作区和暂存区的状态。

git log:查看代码提交记录。

git cherry-pick:选择commitId 应用在当前分支。git cherry-pick commitId。

回退分两种情况:

第一种:已 commit,未push到远程仓库。

第二种:已 commit,并且push到了远程仓库。

已 commit,未push到远程仓库
git reset --soft(撤销commit)
touch 创建了一个a.text,并提交到了本地仓库。

此时回滚a.text,git log找到要回退到的版本号,此处版本号为前一个版本。(或者通过 git reset [HEAD] 回退版本)

执行命令:git reset --soft 7ee5305f1e1e0f66c7d69666ff7054fc6e309464

通过idea可看到commit 记录被撤销了。

git reset --mixed(撤销 commit 和 add 两个动作)
touch创建新文件 b.text, 并提交到本地仓库。

通过git log找到要回退到的版本号 7ee5305f1e1e0f66c7d69666ff7054fc6e309464

执行命令:git reset --mixed 7ee5305f1e1e0f66c7d69666ff7054fc6e309464

此时可以看到,git reset --mixed 撤销的文件 未加入到暂存区,所以是撤销 commit 和 add 两个动作。

已 commit,并且push到了远程仓库
git reset --hard(撤销并舍弃版本号之后的提交记录)
新建文件a.text,并push到远程。

执行命令:

git reset --hard 7ee5305f1e1e0f66c7d69666ff7054fc6e309464

git push -f(强制推送到远程,之前提交都会被覆盖,慎用)

此时可用看到提交记录和文件都被撤销了。使用需谨慎,不推荐使用。

当然,如果不小心用了git reset --hard操作回退了,那么可用git reflog命令查看命令历史,找到被删除的commit,再次操作。

git revert(撤销,但是保留了提交记录)
新建文件a.text,并push到远程。

通过 git revert 版本号,撤销当前提交记录。版本号为要撤销的版本号,此处为当前提交的版本号。

可以看到本地和远程仓库文件都被撤销了。但是git log中能看到提交和撤销记录。

推荐用这种方式回退远程的代码。比如我们在master分支提交错了文件需要回退,那么我们用这个方式回退后,再用git cherry-pick commitId 重放该提交。最后本地修改了再push到远程。

总结
回退分两种情况:

已 commit,未push到远程仓库。
git reset --soft(撤销commit)。

git reset --mixed(撤销 commit 和 add 两个动作)。

已 commit,并且push到了远程仓库。
git reset --hard(撤销并舍弃版本号之后的提交记录)。

git revert(撤销,但是保留了提交记录)。

猜你喜欢

转载自blog.csdn.net/weixin_51060040/article/details/127220847