版本管理:
-
创建仓库:
git init
-
查看仓库当前的状态:
git status
-
查看不同:
git diff
-
提交到仓库:
git add
//将工作区的内容提交到暂存区stage
git commit
//将暂存区stage的内容提交到分支master -
版本的提交日志:
git log
e120b4554909deb5784d601042766dd10f0c59d5 是commit id(版本号) -
退回到上一个版本:
git reset --hard HEAD^
//退回到上一版本后,那最新的版本就会消失。
回到指定版本:git reset --hard 1094a
//回到1094a这个版本 -
删除:
情况1:只在工作区修改了文件readme.c,
还没有git add和git commit
。现在想放弃修改。方法:
git checkout -- readme.c
情况2:在工作区修改了文件readme.c,已经添加到了stage(git add),但是没有提交(git commit)。现在想放弃修改。
方法:
git reset HEAD readme.c
//把暂存区的修改回退到工作区,和情况1的情形一样了
git checkout -- readme.c
//放弃工作区的修改情况3:在工作区修改了文件readme.c,已经提交(git commit)了。应该版本回退。
方法:
git reset --hard HEAD^
远程仓库:
-
将本地库与远程库关联起来:
git remote add origin git@github.com:wolvesliu/code_intbot.git
-
把本地仓库上传到远程仓库:
git push -u origin master
//第一次上传需要加-u,以后就不用了。
git push origin master
-
从远程仓库克隆一份到本地:
git clone git@github.com:wolvesliu/code_intbot.git
分支管理:
-
创建并切换到分支:
git checkout -b dev
.相当于执行
git branch dev
//创建分支dev
git checkout dev
//切换到分支dev -
查看所有分支:
git branch
-
合并到master分支:
git merge dev
。将分支切换到master,然后使用 git merge dev 可以快速的将dev分支合并到master分支上。 -
删除分支:
git branch -d dev
-
查看远程库的信息:
git remote
git remote -v
更详细 -
推送其他分支:
git push origin master
git push origin dev
//开发分支 -
多人协作:https://www.liaoxuefeng.com/wiki/896043488029600/900375748016320(廖雪峰)
你的小伙伴已经向origin/dev分支推送了他的提交,而你也对同样的文件作了修改,并试图推送:git push origin dev
。
发现推送失败,因为小伙伴的最新提交和你试图推送的提交有冲突,办法:先把最新的提交抓下来,然后,在本地合并,再push。若合并时有冲突就手动解决冲突,然后提交再push。
git pull
//先把最新的提交抓下来,
git merge dev
//合并,如果有冲突,就手动解决,然后再提交commit,再push如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,
用命令git branch --set-upstream-to=origin/master master
。这是将本地的master分支与远程的master分支建立关系。
配置文件:
-
配置别名:
git config --global alias.st status // git st 等同于 git status git config --global alias.co checkout // git co 等同于 git checkout git config --global alias.ci commit // git ci 等同于 git commit git config --global alias.br branch // git br 等同于 git branch git config --global alias.last 'log -1' // git last 等同于 git log -1显示最后一次提交信息 git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"`
-
配置Git的时候,加上–global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用。
配置文件放哪了?
(1)每个仓库的Git配置文件都放在.git/config文件中:(2)当前用户的Git配置文件放在用户主目录下的.gitconfig中。 vim ~/.gitconfig
[user]
name = Max Liu
email = wolves_liu@163.com
[color]
ui = true
[alias]
st = status
co = checkout
ci = commit
br = branch
last = log -1