git gui fetch不到文件_git常用操作命令

参考链接:https://www.liaoxuefeng.com/wiki/896043488029600

1、只删远程仓库文件,但不删本地文件

  1. 把xxx.iml加到`.gitignore`里面忽略掉

2. git rm -r --cached xxx.iml  //-r 是递归的意思 当最后面是文件夹的时候有用

3. git add -A

4. git commit -m "ignore xxx.xml"

5. git push

2、查看所有版本提交记录,包括回退版本记录(防止版本回退后,找不到最新版本)

git reflog

3、撤退修改

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时用命令:

git restore filename

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令 git restore --staged filename,就回到了场景1,第二步按场景1操作

场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,使用版本回退

4、远程仓库

本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,需要一点设置:

第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsaid_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:

$ ssh-keygen -t rsa -C "youremail@example.com"

你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。

如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsaid_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:

然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:

6ab37922187f663d8ee3b74abd9208c3.png

182cf9e690fd267fe96d24e5120136ac.png

为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。

当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。

5、操作远程仓库关联

查看关联的远程仓库地址:git remote -v

关联远程仓库地址:git remote add origin xxx

修改远程仓库地址:git remote set-url origin xxx

删除远程仓库地址:git remote rm origin

6、保存与恢复工作现场

保存工作现场:git stash

恢复工作现场:git stash pop

PS:在master分支上修复的bug,想要合并到当前dev分支,可以用git cherry-pick <commit>命令,把bug提交的修改“复制”到当前分支,避免重复劳动

7、分支

查看远程分支:git branch -r

查看所有分支:git branch -a

8、标签

创建标签:git tag <tagname> [<commit id>]

查看所有标签:git tag

查看指定标签信息:git show <tagname>

  • 命令git push origin <tagname>可以推送一个本地标签;
  • 命令git push origin --tags可以推送全部未推送过的本地标签;
  • 命令git tag -d <tagname>可以删除一个本地标签;
  • 命令git push origin :refs/tags/<tagname>可以删除一个远程标签。

8、fork仓库如何保持同步更新

1.给 fork 配置一个 remote

主要使用git remote -v查看远程状态

git remote -v
# origin  https://github.com/shengjk/flink.git (fetch)
# origin  https://github.com/shengjk/flink.git (push)

添加一个将被同步给 fork 远程的上游仓库

git remote add upstream https://github.com/apache/flink.git 

再次查看状态确认是否配置成功。

git remote -v
origin  https://github.com/shengjk/flink.git (fetch)
origin  https://github.com/shengjk/flink.git (push)
upstream        https://github.com/apache/flink.git (fetch)
upstream        https://github.com/apache/flink.git (push)

2. Syncing a fork

(1).从上游仓库 fetch 分支和提交点,传送到本地,并会被存储在一个本地分支 upstream/master

git fetch upstream

(2).切换到本地主分支

git switch master

(3).把 upstream/master 分支合并到本地 master 上,这样就完成了同步,并且不会丢掉本地修改的内容。

git merge upstream/master

当然也可合并为一步操作

git pull upstream master

如果想更新到 GitHub 的 fork 上,直接git push origin master就好了。

这里推荐使用rebase,因为merge之后,会有记录,然后在提交PR,会很难看

9、配置别名

例如:git config --global alias.co checkout

参考:https://www.liaoxuefeng.com/wiki/896043488029600/898732837407424

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值