Git笔记

git配置
• /etc/gitconfig文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 –system 选项,读写的就是这个文件

• ~/.gitconfig文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 –global 选项,读写的就是这个文件

• 当前项目的 git 目录中的配置文件(也就是工作目录中的 .git/config 文件):
这里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以.git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量

用户信息
git config –global user.name “John”
git config –global user.email john@johng.cn

文本编辑器
git config –global core.editor gedit

差异分析工具
git config –global merge.tool meld

查看配置信息要检查已有的配置信息
git config –list

输入一次后保存用户名和密码
git config –global credential.helper store

git hooks自动部署

 

.gitignore
忽略某些文件(配置该文件,支持通配符号)
• 所有空行或者以注释符号 # 开头的行都会被 Git 忽略
• 可以使用标准的 glob 模式匹配
• 匹配模式最后跟反斜杠(/)说明要忽略的是目录
• 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反

从当前目录初始化,创建git仓库
git init

从现有仓库克隆(url可以为git://, http(s)://, user@server:/path.git协议)
git clone [url]

检查当前文件状态
git status

开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等
git add [file]

要查看尚未暂存的文件更新了哪些部分,不加参数直接输入
git diff
git difftool 使用预定义的对比工具查看

到远程仓库中拉取所有本地仓库中还没有的数据(并不自动合并)
git fetch [remote-name]

远程获取,带合并功能
git pull

放弃当前对文件file_name的修改
git checkout [master] [file_name]

查看远程仓库信息
git remote show [remote-name]

远程仓库的重命名
git remote rename [from_name] [to_name]

远程仓库的删除
git remote rm [remote-name]

删除分支
-D 表示强制删除
git branch -d [分支名]

 

查看所有分支的所有操作记录(包括(包括commit和reset的操作),包括已经被删除的commit记录,git log则不能察看已经删除了的commit记录

git reflog 分支名

 

git 回退版本命令

  • git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
  • git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
  • git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容

如果我们某次修改了某些内容,并且已经commit到本地仓库,而且已经push到远程仓库了,
这种情况下,我们想把本地和远程仓库都回退到某个版本,该怎么做呢?

前面讲到的git reset只是在本地仓库中回退版本,而远程仓库的版本不会变化

这样,即时本地reset了,但如果再git pull,那么,远程仓库的内容又会和本地之前版本的内容进行merge

这并不是我们想要的东西,这时可以有2种办法来解决这个问题:

1:直接在远程server的仓库目录下,执行git reset –soft 10efa来回退。注意:在远程不能使用mixed或hard参数

2:在本地直接把远程的master分支给删除,然后再把reset后的分支内容给push上去,如下:

 在删除远程master分支时,可能会有问题,见下:

 这时需要在远程仓库目录下,设置git的receive.denyDeleteCurrent参数

 然后,就可以删除远程的master分支了

虽然说有以上2种方法可以回退远程分支的版本,但这2种方式,都挺危险的,需要谨慎操作……

 

注意当使用git reset –hard 回滚完master的分支后,由于其他客户端的版本库内容比较新需要同时与服务器的版本库进行同步,使用git pull之后再使用 

即可

 

参考链接:

Git官方手册:https://git-scm.com/book/zh/

 

 

 

 

Leave a Reply

Your email address will not be published.