一、初始化
1全局变量:
1.1设置用户 git config --global user.name "user_name"
git config --global user.email "XXXXX@gmail.com"
git config --global color.ui "always"
1.2设置默认编辑器
eg:sublime 新建一个GIT_EDITOR的系统环境变量,值为sublime.exe
在PATH环境变量后追加sublime的安装目录C:\Program Files\Sublime Text 2
1.3解决中文乱码问题:
1.3.1解决bash控制台的ls命令时,中文文件名乱码
在Git\etc\git-completion.bash 文件中加一行alias ls="ls --show-control-chars --color=auto"
1.3.2解决bash控制台git commit 无法加入中文注释
修改Git\etc\inputrc文件 set output-meta on
set convert -meta off
1.3.3解决git log命令中中文注释乱码(只在控制台有效)
在Git\etc\profile中追加一行:export LESSCHARSET=ios8859
1.3.4解决gitk显示中文注释乱码
git config --global i18n.commitencoding IOS-8859
git config --global i18n.logoutputencoding IOS-8859
2初始化新版本库
git init 只会在根目录下创建一个名为.git的文件夹
3设置忽略的文件
3.1设置所有人都需忽略的文件
在根目录新建一个名为.gitignore的文本文件
在命令行执行echo *.jpg>.gitignore
将.gitignore文件加入版本库提交
3.2设置自己需忽略的文件
修改.git/info/exclude文件 可使用正则表达式
4添加新文件到版本库
添加单个文件 git add file.txt
添加所有txt文件 git add *.txt
添加所有文件 git add . (包括子目录,但不含空目录)
5提交 git commit -m "comment"
二常用操作
1提交
1.1提交所有修改 git commit -m "comment" -a
1.2提交单个文件 git commit -m "comment" XXX.txt
1.3增补提交 git commit -C head -a --amend 不会产生新的提交记录
2撤销修改
2.1撤销尚未提交的修改
2.1.1撤销1、2个文件的修改 git checkout head XXX.txt YYY.txt
2.1.2撤销所有txt文件的修改 git checkout head *.txt
2.1.3撤销所有文件的修改 git checkout head .
2.2撤销提交
2.2.1反转提交 反转提交但并不提交 eg:反转最近一次提交 git revert --no -commit head 相当于提交最近一次提交的反操作
2.2.2复位
取消暂存 git reset head 或 git reset head <filename>
复位到head之前的那个版本 git reset --hard head^ 不会再版本库中留下痕迹
3分支
3.1显示本地分支 git branch
3.2显示所有分支 git branch -a
3.3在当前分支的末梢创建新分支 git branch <branchname>
3.4检出分支 git checkout <branchname>
3.5基于当前分支的末梢创建新分支并检出分支 git checkout -b <branchname>
3.6基于某次提交、分支或标签创建新分支 git branch emputy bfe57de0
gir branch emputy2 emputy
3.7分支合并
3.7.1普通合并
3.7.1.1合并并提交 git merge <branchname> 如果发生冲突,就不会自动提交,如果不想解决冲突,可以使用git checkout head . 撤销
3.7.1.2合并但不提交 git merge --no-commit
3.7.2压缩合并
3.7.2.1压缩合并后提交 git merge--squash <branchname>
3.7.2.2压缩合并后不提交git merge --squash --no-commit <branchname>
3.7.3拣选合并
拣选某次提交合并但不提交 git cherry-pick --no-commit 5b62b6
3.8重命名分支
3.8.1覆盖已存在的同名分支 git branch -M <branchname> <newname>
3.8.2不覆盖已存在的同名分支 git branch -m <branchname> <newname>
3.9删除分支
git branch -d new2 (如果分支没有被合并怎会删除失败)
git branch -D new2 (即使分支没有被合并也会被删除)
4解决冲突
冲突较少时 直接查看有冲突的文件
冲突较多时 git merge tool 执行后会生成BACKUP\ BASE\LOCAL\REMOTE四个文件夹
然后自动调用冲突解决工具,解决冲突。解决后手动删除.orig文件(冲突解决前的备份文件)。最后提交
5标签
5.1创建标签
5.1.1位当前分支最近一次提交创建标签 git tag1.0 标签无法重命名
5.1.2为Contacts分支最近一次提交创建标签 git tag contacts_1.1contacts 也可以把标签命名问Contact/1.1
5.1.3为某次历史创建标签 git tag 1.14 e64jd83
5.2显示标签列表 git tag
5.3检出标签 git checkout 1.0 查看标签断面很方便的方法,但不能提交
5.4由标签创建分支 git branch b1.1.1.1
git chenkout -b b1.0.1.0
5.5删除标签 git tag -d 1.0
6查看状态
6.1当前状态 git status
6.2历史状态
6.1.1 git log
6.1.2 gitk: gitk 查看当前分支的历史记录
gitk <branchname> 查看某分支的历史记录
gitk --all 查看所有分支
7其他
导出版本库 git archive --format=zip head>nb.zip
git archive --format=zip --predix=nb1.0/head>nb.zip