git和github使用笔记
概念
- git:工具、版本控制
- github:网站,社交平台,开源项目,远程仓库
svn与git区别
- svn:集成式
- git:分布式
建立一个库
- drag
git clone [url]
- 设置贡献者
- name
git config --global user.name
git conffig --global user.email
git config --list
>>查看所有配置项
git的三个区
- 工作区
- 暂存区
- 作为过渡层
- 避免误操作
- 保护工作区和版本区
- 分支处理
- 版本区(库)
Git命令
提交指令
git status
查看状态git add
添加到暂存区git commit
提交到版本区- -m >>提交缓存区的代码
- -a -m >>提交工作区的代码
比较指令
git diff
不加参数即默认比较工作区与暂存区git diff --cached(--staged)
比较暂存区与最新本地版本库(本地库中最近一次commit的内容)git diff master
对比暂存区和master的不同
撤销指令
git reset HEAD
<file.name>git checkout --
<file.name>git commit --amend
对最后一次提交做修正。<前提是当前最后一次提交没有merge>
删除指令
gir rm <file.name>
git rm -f<file.name>
忽略文件更新状态检查git rm --cached <file.name>
只从索引区删除
恢复指令
git checkout commit_id <file.name>
根据commit_id恢复指定文件git reset --hard commit_id
根据commit_id恢复指定版本HEAD^
恢复上一个版本HEAD~<num>
恢复第几个版本git reflog
查询所有版本信息
同步到远程仓库指令
git remote
不带参数,列出已经存在的远程分支-v
查看远程地址add
修改远程仓库名字
git push origin master
同步到origin远程仓库master分支
多人协作解决冲突指令
git fetch
相当于是从远程获取最新版本到本地,不会自动mergeGit diff master origin/master
查询冲突代码Git merge origin/master
提交代码
git pull
相当于是从远程获取最新版本并merge到本地
<远程主机名> <远程分支名>:<本地分支名>
比如,取回origin主机的next分支,与本地的master分支合并,需要写成下面这样$ git pull origin next:master
git分支操作指令
git branch
显示已有分支,<name>
创建一个新的分支-d
删除指定分支--merged
查询当前这个分支已融合的分支--no-merged
查询未融合分支
git checkout
切换分支-b
快速创建一个新的分支并且切换到新的分支上
git merge
合并分支代码