美文网首页
git常用命令和常见问题

git常用命令和常见问题

作者: 面向星辰大海的程序员 | 来源:发表于2021-04-06 12:21 被阅读0次

基本命令

git  init   初始化一个本地仓库
git status  显示暂存区与仓库区的差异
git log 查看提交记录
git show commit 查看某次提交的详细(commit为commit 后的那一串)
git show 查看最新一次提交
git add  --all     file path   添加文件到本地库(file path为文件路径)
git commit -m“describe” 提交到本地库(describe为提交说明)
git commit -a -m"describe" 添加所有到本地并提到本地
git pull     拉取远程库最新文件   
git push    推送到远程仓库
git merge  branchName  合并(把branchName 分支合并到当前分支)
git branch  查看所有分支
git checkout  filepath  假如filepath文件被删除则会回复,如果被修改则恢复之前的状态(预测是这样)
git checkout  branchName (切换到branchName分支)
git checkout -b branchName(新建一个branchName分支,如果branchName分支已经存在会提示“ A branch named 'test2' already exists.”效果等同于    git branch branchName;git checkout branchName)
git branch -d branchName  删除branchName 分支(不能删除当前分支,需要在其他分支删除branchName分支)
git commit --amend   修改已经提交的日志 
git show commit fileName  查看某次commit中具体某个文件的修改,没有修改就只有文件名
git rm -r --cached .    GIT 在提交之前撤销add操作使用

git diff branchName1 branchName2 --stat 显示两个分支所有有差异的文件列表
git diff branchName1 branchName2 显示所有有差异的文件的详细差异
git diff branchName1 branchName2  filepath  显示指定文件filepath详细差异

git status 先看一下add 中的文件
git reset HEAD 如果后面什么都不跟的话 就是上一次add 里面的全部撤销了
git reset HEAD XXX/XXX/XXX.java 就是对某个文件进行撤销了

如果不小心 弄错了 git add后 , 又 git commit 了。(还没push)
先使用
git log 查看节点
然后
git reset commitId

git reset commit_id (回退到上一个 提交的节点 代码还是原来你修改的)
git reset –hard commit_id (回退到上一个commit节点, 代码也发生了改变,变成上一次的)

还原已经提交的修改
此次操作之前和之后的commit和history都会保留,并且把这次撤销作为一次最新的提交
git revert HEAD 撤销前一次 commit
git revert HEAD^ 撤销前前一次 commit
git revert commit-id (撤销指定的版本,撤销也会作为一次提交进行保存)
git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去,版本会递增,不影响之前提交的内容。

git 代码暂存指令:git stash
git 代码暂存列表信息:git stash list
git 代码应用暂存代码:git stash apply stash@{1}
git stash clear  清除暂存
git diff hash1 hash2 --stat 对比两次提交的不同


clear 清屏

source tree Git界面化工具

git log 中文显示乱码

git config --global core.quotepath false;
git config --global gui.encoding utf-8;
git config --global i18n.commit.encoding utf-8;
git config --global i18n.logoutputencoding utf-8;
export LESSCHARSET=utf-8;

git 解决 fatal: Out of memory, malloc failed (tried to allocate 524288000 bytes ) 问题

git config http.postBuffer 0
git config --global http.postBuffer 0

每次都要输密码问题

git config credential.helper store

这里没有--global意思是指只对这个仓库生效,建议以后都不要加--global让代码配置以仓库为单位存储就好,设置成全局不灵活打开.git文件夹的.config文件,会发现多了两行

[credential]

helper=storegit

push 到远程仓库,输入用户名和密码,注意要输入正确的

再次运行git push 就不用输入用户名和密码了在用户主目录文件夹多了一个文件git-credentials,这个就是用来存储用户名和密码的

也可以在第2步时指定此文件文件名和存储位置

--file ~/git-credentials

~代表当前目录

也可以使用创建windows系统环境变量的方式,道理都是一样,让系统知道去哪里找这个用户名和密码就好

身份验证失败,重新验证 控制面板\用户帐户\凭据管理器配置凭证

git config --system --unset credential.helper

之后再进行git操作时,弹出用户名密码窗口,输入即可

打印所有标签 git tag

打印符合检索条件的标签 git tag -l 1.*.* 
查看对应标签状态 git checkout 1.0.0 
创建轻量标签 git tag 1.0.0-light 
创建带备注标签(推荐) git tag -a 1.0.0 -m "这是备注信息" 
针对特定commit版本SHA创建标签 git tag -a 1.0.0 0c3b62d -m "这是备注信息"
删除标签(本地) git tag -d 1.0.0 
将本地标签发布到远程仓库 发送所有 git push origin --tags
指定版本发送 git push origin 1.0.0 
删除远程仓库对应标签 // Git版本 > V1.7.0 git push origin --delete 1.0.0 // 旧版本Git git push origin :refs/tags/1.0.0

如指定关键字为“init”的所有提交

git log --grep=init

筛选查看日志

git log --since="July 7"  查7月7号之后的log
git log --before="July 7"查7月7号之前的log
git log --author="作者"   只看这个人提交的
git log --pretty=oneline 单行显示提交id和日志
git log --pretty=format:"%h - %an, %ar : %s"格式化显示提交日志
    
   选项
说明
%H 提交的完整哈希值
%h 提交的简写哈希值
%T 树的完整哈希值
%t 树的简写哈希值
%P 父提交的完整哈希值
%p 父提交的简写哈希值
%an 作者名字
%ae 作者的电子邮件地址
%ad 作者修订日期(可以用--date =选项来定制格式)
%ar 作者修订日期,按多久以前的方式显示
%cn 提交者的名字
%ce 提交者的电子邮件地址
%cd 提交日期
%cr 提交日期(距今多长期)
%s 提交说明 
    
git log dev ^master 查看 dev 有,而 master 中没有的
git log master..dev 查看 dev 中比 master 中多提交了哪些内容
git log dev...master 不知道谁提交的多谁提交的少,单纯想知道有什么不一样
git log --left-right dev...master在上述情况下,再显示出每个提交是在哪个分支上注意 commit 后面的箭头,根据我们在 –left-right dev…master 的顺序,左箭头 < 表示是 dev 的,右箭头 > 表示是 master的。

在 git commit 的时候会出现 MERGE_HEAD 冲突:

error: You have not concluded your merge (MERGE_HEAD exists).
hint: Please, commit your changes before merging.
fatal: Exiting because of unfinished merge.
基本上,使用保留本地修改的方式就可以解决这个冲突:
git merge --abort
git reset --merge
git pull

相关文章

  • 命令行常用命令

    npm常用命令 git常用命令 git 常见问题解决 让远程仓库代码覆盖本地的代码 2、 让本地代码覆盖远程 3...

  • git相关教程汇总

    1. git常用命令 git常用命令总结git常用命令讲解 2. git教程相关网站 廖雪峰的git教程猴子都能懂...

  • git命令整理

    git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...

  • Git-基础1

    常用命令 参考 Git远程操作详解 和 Git教程 which -a git # 查看所有版本的 gitgit -...

  • git 常用命令

    git 常用命令 用户和项目信息配置

  • git操作

    Git原理 Git常用命令

  • Git 常用命令及应用这一篇就够了(新手向)

    1. git 常用命令 1.1 常用命令 1.2 git remote 管理远程仓库 1.3 git r...

  • Git 常用操作

    常用命令图: 常用命令 查看本地、远端、全部分支 git branch git branch -r git bra...

  • Git 常用命令详解

    @[TOC](Git 常用命令详解) 1. Git 常用命令 1.1 常用git 命令图表汇总 1.2 配置个人信...

  • Git常用命令和常见问题

    git官网 一、git常用命令 1.常用命令 2.分支 3.远程操作 4.撤回操作 5.对比工作区,暂存区,仓库的...

网友评论

      本文标题:git常用命令和常见问题

      本文链接:https://www.haomeiwen.com/subject/fcockltx.html