您的位置:首页 > 其它

Git入门本地常见配置与操作

guiyangfuture 2015-05-31 10:33 86 查看
一、初始化

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
标签: