在Windows上git的密码是交给window进行管理的需要进入“控制面板”–“用户账户” –“凭证管理,管理windows凭据” 点开后有git:xxx的凭据,删除还是修改看自己意愿修改即可
如何避免自动保存凭据
git config –edit –system
删除 helper = manager
另外可以额外配置
git config –edit –global
[core]
askpass =

xuenhua’s 站点
在Windows上git的密码是交给window进行管理的需要进入“控制面板”–“用户账户” –“凭证管理,管理windows凭据” 点开后有git:xxx的凭据,删除还是修改看自己意愿修改即可
如何避免自动保存凭据
git config –edit –system
删除 helper = manager
另外可以额外配置
git config –edit –global
[core]
askpass =
# 删除一条配置信息
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 –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常用搜索条件

一、在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上,但是会有一些历史记录,这些历史记录中可能会有项目密码等敏感信息。如何删除这些历史记录,形成一个全新的仓库,并且保持代码不变呢?
操作
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
已经是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