git config
修改提交人信息
全局提交人信息修改:
git config --global user.name "xxx"
git config --global user.email "[email protected]"
检查配置信息
git config --list
git仓库操作
git状态操作
查看当前git状态:git status
/git status -s
git add
命令将文件放入暂存区
$ git status -s
M README
MM Rakefile
A lib/git.rb
M lib/simplegit.rb
?? LICENSE.txt
输出有两栏,左栏:暂存区的状态,右栏:工作区的状态
M:文件被修改
A:新添加到暂存区的文件
??:新添加未跟踪的文件
可以使用git diff查看工作区和暂存区文件之间的差异,也就是修改以后但是还没有暂存的内容
查看远程的git仓库:git remote -v
,其中origin是默认的远程仓库的别名
查看远程仓库的信息:git remote show <shortname>
git仓库修改
删除跟踪的文件,下次提交中将不会跟踪此文件:git rm PROJECT.md
取消暂存的文件:git reset HEAD <file>
撤销暂存区中修改的文件:git checkout -- <file>
给git仓库添加全程仓库:git remote add <shortname> <url>
fetch和pull:fetch会拉取远程仓库,但不会合并远程的修改;pull会拉取远程仓库并合并远程的修改
将自己本地的仓库更新到远程仓库:git push <remote> branch
git查看历史记录
直接显示所有的log记录:git log
显示每次提交的差异(-p),之前2个提交(-2):git log -p -2
显示每次提交的变化:git log --stat
git分支操作
创建新分支:git branch <branch_name>
HEAD指针始终指向当前所在的分支
分支切换:git checkout <branch_name>
输出分支情况:git log --oneline --decorate --graph --all
创建分支并切换:git checkout -b <branch_name>
合并分支:git merge <branch_name>
删除分支:git branch -d <branch_name>
查看所有分支:git branch
查看分支显示最新的提交:git branch -v
查看远程分支:git ls-remote <remote>
获取远程分支的信息:git show remote <remote>
冲突解决
当分支合并出现冲突的时候:
查看git status
获取发生冲突的文件:
$ git status
On branch master
You have unmerged paths.
(fix conflicts and run "git commit")
Unmerged paths:
(use "git add <file>..." to mark resolution)
both modified: index.html
no changes added to commit (use "git add" and/or "git commit -a")
找到发生冲突的文件,并找到文件中冲突的区块:
<<<<<<< HEAD:index.html
<div id="footer">contact : [email protected]</div>
=======
<div id="footer">
please contact us at [email protected]
</div>
>>>>>>> iss53:index.html
删除冲突区块解决冲突,将修改后的文件git add
进入暂存区
分支合并(变基)
除了将一个branch merge到master以外,git可以将一个branch中所有的修改进行重放应用到master中
- git checkout 待合并的分支
- git rebase master
- git checkout master
- git merge 待合并的分支
rebase的作用主要是用于简化提交记录