展开

文章目录

修改历史

历史修改版本

  1. 2021-02-02 18:03:01

git不常用操作记录

2020-11-11 17:36:37 Git 245

简介

作为一个程序员,肯定都是知道git这个版本控制工具的,尤其是gayhub平台,相信大家都不陌生。在日常工作生活中,我们使用的最多的git操作无非是clone、commit、push、pull等等。但是关于git的'奇技淫巧'还有很多,写篇博客记录一下!!!

删除远程仓库中的文件或文件夹

相信很多人都犯过一个错误,那就是很多信息不应该提交到git仓库中去的,而忘记在.gitignore文件中添加了。比如数据库连接配置文件、隐私文件(第三方Secret)等。不管是公司内容部的gitlab平台,还是github平台,泄露出去都不太好。

1.删除github中的文件

github中我们好像是没有在网页端找到删除文件的入口(不知道是不是我没找到?如果有请评论区告诉我一下!!xx),我们可以通过如下命令来删除github上的文件。

git rm --cache privacy.inf
git add --al
git commit -m 'delete private file'
git push

2.删除github中的文件夹

上一节的命令只是删除单个文件,如果我们需要删除文件夹怎么办呢?很简单加一个 -r参数即可。

没有删除之前的git仓库

git repo before

git rm -r --cache .idea/
git add --al
git commit -m 'remove .idea folder'
git push

删除之后的github仓库

git after

忽略本地的修改记录

有时候我们在使用git pull命令的时候,会出现报错。大概的意思就是你本地有新的修改,请先push然后再更新。

1.通过合并来覆盖本地修改

git reset --hard
git pull

如果有未跟踪的本地文件,可以使用git clean来移除。通过使用git clean -f来移除未跟踪的文件,-df来删除未跟踪的文件和目录,-xdf来要删除未跟踪或忽略的文件或目录。

2.隐藏合并

如果想以某种方式保留本地修改,你可以在pull之前把他们隐藏起来,之后再重新应用

git stash
git pull
git stash pop

同步主仓库

在公司开发的项目中,经常很多小伙伴一起开发一个项目,然后该项目有一个主仓库(生产环境代码),每个小伙伴会将主仓库的代码fork到自己的私人仓库中,然后修改、更新提交新的内容,然后提交merge请求将新代码合并到主仓库中。与此同时,我们也需要将主仓库中最新的代码同步到到我们本地仓库中去,我们可以使用如下方式进行。

  1. 查看本地远程仓库分支
    git remote -v
  2. 添加主仓库连接
    git remote add upstream http://gitlab.repository.com/it/reponame.git

    upstream 后面的参数就是你主仓库git的连接可以是https方式的也可以是ssh方式的,推荐ssh方式,因为这样我们同步的时候就不需要输入用户名跟密码了。

  3. fetch主仓库代码

    git fetch upstream
  4. 切换分支
    git checkout master
  5. merge
    git merge upstream/master
  6. 私人远程仓库同步
    git push origin master

     

配置不同的用户名、邮箱

使用过git工具的都知道使用下面的命令配置本机的git用户名跟邮箱

git config --global user.name="username"
git config --global user.email="youemail@gmail.com"

上面的配置仅仅是配置当前本机全局的设置,如果我们有些项目需要使用其他的用户名、邮箱提交我们可以通过下面的步骤来进行配置

首先进入目标项目文件夹中,可以查看到文件夹中有.git隐藏文件夹,进入文件夹我们可以通过cat config查看当前git配置的内容

[core]
	repositoryformatversion = 0
	filemode = true
	bare = false
	logallrefupdates = true
[remote "origin"]
	url = https://github.com/weijiang1994/university-bbs
	fetch = +refs/heads/*:refs/remotes/origin/*
[branch "main"]
	remote = origin
	merge = refs/heads/main

在这个config文件中我们可以查看到项目远程仓库地址、分支等内容,我们将我们的目标用户名跟邮箱配置在这个配置文件里面后,在每次push该项目的时候使用的就是config中的用户名、邮箱信息了。

git config user.name "username"
git config user.email "useremail"

再次通过cat config查看

[core]
	repositoryformatversion = 0
	filemode = true
	bare = false
	logallrefupdates = true
[remote "origin"]
	url = https://github.com/weijiang1994/university-bbs
	fetch = +refs/heads/*:refs/remotes/origin/*
[branch "main"]
	remote = origin
	merge = refs/heads/main
[user]
	name = weijiang1994
	email = 804022023@qq.com

之后我们推送这个项目的时候使用的用户名就是config中的配置信息了

当前共有0条评论