git设置config

# 删除一条配置信息
git config –unset user.name

# 删除所有配置信息
git config –unset-all

二.你的标识(Your Identity)

2.1 当你安装Git后首先要做的事情是设置你的用户名称和e-mail地址。这是非常重要的,因为每次Git提交都会使用该信息。它被永远的嵌入到了你的提交中:

  $ git config –global user.name “John Doe”

   $ git config –global user.email johndoe@example.com

   重申一遍,你只需要做一次这个设置。如果你传递了 –global 选项,因为Git将总是会使用该信息来处理你在系统中所做的一切操作。如果你希望在一个特定的项目中使用不同的名称或e-mail地址,你可以在该项目中运行该命令而不要–global选项。

2.2 你的编辑器(Your Editor)

  现在,你的标识已经设置,你可以配置你的缺省文本编辑器,Git在需要你输入一些消息时会使用该文本编辑器。缺省情况下,Git使用你的系统的缺省编辑器,这通常可能是vi 或者 vim。如果你想使用一个不同的文本编辑器,例如Emacs,你可以做如下操作:

  $ git config –global core.editor emacs

2.3 你的比较工具(Your Diff Tool)

  另外一个你可能需要配置的有用的选项是缺省的比较工具它用来解决合并时的冲突。例如,你想使用vimdiff:

  $ git config –global merge.tool vimdiff

   Git可以接受kdiff3,tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge, 和 opendiff作为有效的合并工具。你也可以设置一个客户化的工具;查看第7章获得更多关于此的信息。

2.4 检查你的设置(Checking Your Settings)

  如果你想检查你的设置,你可以使用 git config –list 命令来列出Git可以在该处找到的所有的设置:

  $ git config –list

  user.name=Scott Chacon

  user.email=schacon@gmail.com

  color.status=auto

  color.branch=auto

  color.interactive=auto

  color.diff=auto

  …

  你可能会看到一个关键字出现多次,这是因为Git从不同的文件中(例如:/etc/gitconfig以及~/.gitconfig)读取相同的关键字。在这种情况下,对每个唯一的关键字,Git使用最后的那个值。

  你也可以查看Git认为的一个特定的关键字目前的值,使用如下命令 gitconfig {key}:

  $ git config user.name

  Scott Chacon

2.5 获取帮助(Getting help)

  如果当你在使用Git时需要帮助,有三种方法可以获得任何git命令的手册页(manpage)帮助信息:

  $ git help <verb>

  $ git <verb> –help

  $ man git-<verb>

   例如,你可以运行如下命令获取对config命令的手册页帮助:

  $ git help config

   这些命令非常友好,因为你可以在任何地方存取他们,即使非在线状态。如果手册页和本书仍然不足而你需要个人的帮助,你可以试着使用FreenodeIRCServer上的#git或#github 频道(irc.freenode.net)。这些频道会定期由数百个对Git非常熟悉的专业人士所维护,他们会非常乐意帮助你。

2.6 总结(Summary)

  你应该对Git是什么以及Git与你可能使用的其它CVCS之间的不同有了一个基本的了解。你也应当在你的系统中有了一个具有你个人标识的可以工作的Git版本。是时候来学习一些Git的基本知识了。

换行符转换

git config –global core.autocrlf false

#提交时转换为LF,检出时转换为CRLF

git config –global core.autocrlf true

#提交时转换为LF,检出时不转换

git config –global core.autocrlf input

SafeCRLF

#拒绝提交包含混合换行符的文件

git config –global core.safecrlf true

#允许提交包含混合换行符的文件

git config –global core.safecrlf false

#提交包含混合换行符的文件时给出警告

git config –global core.safecrlf warn

Git log查看

检查某人提交文件

git log –author=”wangxingjing”  –stat

按关键词搜索

git log –grep=comment注释的关键词

// 查询所有提交者

git log –since ==2018-12-25 –until=2019-09-28 –format=’%aN’ | sort -u |

while read name;

 do echo -en “$name\t”;

 git log –author=”$name” –pretty=tformat: –numstat | awk ‘{ add += $1; subs += $2; loc += $1 + $2 } END { printf “added lines: %s, removed lines: %s, total lines: %s\n”, add, subs, loc }’ -;

Done

//单行格式

git log –since ==2018-12-25 –until=2019-09-28 –format=’%aN’ | sort -u | while read name;do echo -en “$name\t”;git log –author=”$name” –pretty=tformat: –numstat | awk ‘{ add += $1; subs += $2; loc += $1 + $2 } END { printf “added lines: %s, removed lines: %s, total lines: %s\n”, add, subs, loc }’ -; done

//-表示上一个过程的输出

// 查询单人

git log –since=2018-09-01 –until=2019-09-28 –author=”author-name” –pretty=tformat: –numstat

 | gawk ‘{ add += $1 ; subs += $2 ; loc += $1 – $2 } END { printf “added lines: %s removed lines : %s total lines: %s\n”,add,subs,loc }’ –

默认不用任何参数的话,git log 会按提交时间列出所有的更新,最近的更新排在最上

–pretty 选项,可以指定使用完全不同于默认格式的方式展示提交历史。

format,可以定制要显示的记录格式,这样的输出便于后期编程提取分析,像这样:

 $ git log –pretty=format:”%h – %an, %ar : %s”

ca82a6d – Scott Chacon, 11 months ago : changed the version number

085bb3b – Scott Chacon, 11 months ago : removed unnecessary test code

a11bef0 – Scott Chacon, 11 months ago : first commit

下表列出了常用的格式占位符写法及其代表的意义。

常用的格式占位符

git log 命令支持的常用选项及其释义。

选项及释义

git log常用搜索条件

Git 操作总结

一、在A机器上创建项目

1、eclipse创建项目

2、github创建仓库

3、eclipse share project,连接github

4、fetch remot from github,merge

5、push to github

二、B机器从git创建项目

7、import from git

8、选择存放路径,这里存放路径就是eclipse实际路径,没有保存到原workspace

9、fetch from remote,然后merge ,先fetch才可以后续push,如果无法push可能是没有fetch最新代码

10、修改编辑代码

11、push remote

三、A获取更新代码

12、fetch remot from github,merge

四、无法添加lib/jar

13、选择lib,ignore

14、编辑ignore文件,找到位置 添加!

五、回滚

15、选择项目,show history 选择提交,revert commit

16、revert commit不能解决的reset 强制回滚(慎用)

删除Git仓库所有提交历史记录,成为一个干净的新仓库

场景

把旧项目提交到Git上,但是会有一些历史记录,这些历史记录中可能会有项目密码等敏感信息。如何删除这些历史记录,形成一个全新的仓库,并且保持代码不变呢?

操作

Checkout

git checkout –orphan latest_branch

Add all the files

git add -A

Commit the changes

git commit -am “commit message”

Delete the branch

git branch -D master

Rename the current branch to master

git branch -m master

Finally, force update your repository

git push -f origin master

强制pull远端覆盖本地文件

git fetch –all 

git reset –hard origin/master

Svn 和git 同时使用

已经是git仓库情况

1、svn checkout

2、svn status 查看状态,会有许多删除冲突

3、使用revert命令恢复 svn revert ./* -R [或者单独文件 R递归]

4、再次查看状态,删除冲突消失

5、git pull ,git reset –hard 清除svn的更改,然后查看git 和svn状态是否正常,

6、修改,往两处提交就可以了

此过程可能需要多次gc cleanup

1 Svn checkout

2 git pull

3 换行符问题

4 git 修改为 autocrlf

5 Add 提示有些lf转换问题

6 再改为autocrlf false

7 再次add

通过代理访问ssh git

ssh -o “ProxyCommand nc -X 5 -x 192.168.4.20:1080 %h %p” root@172.19.6.131

git config http.proxy http://192.168.4.20:8080 http代理

git config http.proxy socks5://192.168.4.20:1080 http代理

curl -x ‘http://192.168.4.20:8080’ http://www.baidu.com

手机上开启http或者socket代理协议

设置代理
git config http.proxy ‘socks5://192.168.4.20:1080’
git config –global https.proxy ‘socks5://127.0.0.1:1080’
取消代理
git config –global –unset http.proxy
git config –global –unset https.proxy