git用法总结

1 篇文章 0 订阅

用git也有一段时间了,遇到了大大小小的问题,写一篇文章来汇总一下。

1. commit回退

写完代码后,我们一般这样

git add . //添加所有文件
git commit -m "本功能全部完成"

执行完commit后,想撤回commit,怎么办?

**git reset --soft HEAD^**

这样就成功的撤销了你的commit

注意,仅仅是撤回commit操作,您写的代码仍然保留。

说一下个人理解:HEAD^的意思是上一个版本,也可以写成HEAD1,如果你进行了2次commit,想都撤回,可以使用HEAD2

至于这几个参数:

--mixed

意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作

这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。

--soft

不删除工作空间改动代码,撤销commit,不撤销git add .

--hard

删除工作空间改动代码,撤销commit,撤销git add .

注意完成这个操作后,就恢复到了上一次的commit状态。

顺便说一下,如果commit注释写错了,只是想改一下注释,只需要:

git commit --amend

此时会进入默认vim编辑器,修改注释完毕后保存就好了。

2. 报错"Changes not staged for commit:"

提交时加上参数:-a ,表示新增。

git commit -am "提交说明"

3. 文件过滤

  • 新建.gitignore文件:

    • 文件夹不想上传如果在仓库根目录下的文件夹则可以 /文件夹名字/ 来标注
    • 如果是某个后缀的文件就可以 .*** 这样子 例如 .jar 或者.properties 因为properties里有自己数据库地址的IP或者是账号密码之类的;
    • 如果不在根目录而在其子目录下的子目录可以从根目录往下走 /文件夹名字/子文件夹名字/**…/文件名.后缀

    例如/src/main/resources/*.properties就是src文件夹下的main下的resources下的.properties文件

  • .后缀表示所有该文件夹下的该后缀的文件都不显示 如果只是某一个则可以将*替换为具体的文件名字

    !后面跟的表示这个文件是过滤忽略,就是表示该文件是可以被上传的

  1. 在服务器上编辑.gitignore文件来进行配置即可,例如不想提交.out文件,这时就可以在.gitignore文件里面写入如下内容

    $ cat .gitignore
    *__**pycache__**
    .vscode
    .idea
    *.pyc
    *.db
    *.mp3
    *.log
    *.wav
    *.out
    *log.txt
    $ vi .gitignore
    

4.记住账号密码

git bash进入你的项目目录,输入:

git config --global credential.helper store

然后你会在你本地生成一个文本,上边记录你的账号和密码。当然这些你可以不用关心。

然后你使用上述的命令配置好之后,再操作一次git pull,然后它会提示你输入账号密码,

第一次输入正确之后,下次使用git pull 以及git push 都无需账号密码了。

5. 设置默认的git用户名和密码方法:

  • 进入到git项目的根目录下,打开.git目录下的config文件
cd .git
vim config
  • 添加如下内容
[credential]
        helper = store

6. 浅克隆

当项目过大时,git clone时会出现error: RPC failed; HTTP 504 curl 22 The requested URL returned error: 504 Gateway Time-out的问题。

depth用于指定克隆深度,为1即表示只克隆最近一次commit.

git clone --depth=1 xxxxx.git

这种方法克隆的项目只包含最近的一次commit的一个分支,体积很小,即可解决文章开头提到的项目过大导致Timeout的问题,但会产生另外一个问题,他只会把默认分支clone下来,其他远程分支并不在本地,所以这种情况下,需要用如下方法拉取其他分支:

$ git clone --depth 1 https://github.com/dogescript/xxxxxxx.git
$ git remote set-branches origin 'remote_branch_name'
$ git fetch --depth 1 origin remote_branch_name
$ git checkout remote_branch_name+

7. 查看以前版本以及回滚

git reflog # 查看所有的commit记录
git log # 查看所有git记录
git reset --hard <HEAD名> # 回退到HEAD的提交

8. 分支查看与删除

$ git branch -a  #查看项目的分支们(包括本地和远程) 
$ git branch -d <BranchName> # 删除本地分支

9. merge用法(以dev分支合并入master分支为例)

git checkout dev # 先切到dev分支,进行更新内容的拉取(如果远端无更新,可以直接进行merge)
git pull # 拉取更新
git checkout master # 切到master分支
git merge --no-ff dev # 将dev分支的内容合并过来,可选参数-m,加commit注释 

10. Win更新系统后git bash快捷键消失解决办法:

https://blog.csdn.net/weixin_42357048/article/details/80533571

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值