版本控制工具分为两类:
-
集中式版本控制工具 SVN (具有单点故障问题)
-
分布式版本控制工具 Git (每一个本地库都有版本控制,解决了单点故障问题)
Git签名:用户名,email地址(作用:区分不同开发人员)
这里设置的签名和登录远程库(代码托管中心)的账号,密码没有任何关系
命令:
项目级别/仓库级别:仅在当前本地库范围内有效
git config user.name XXXX
git config user.email XXXX
保存在 ./.git/config文件中系统用户级别:登录当前操作系统的用户范围
git config --global user.name XXXX
git config --global user.email XXXX
保存在系统用户目录下的~/.gitconfig文件中
级别优先级:
就近原则:项目级别优于系统用户级别
两者都没有是不允许的
Head是一个指针,代表当前的分支版本
本地三大位置:工作区,暂存区,本地库
Git命令:
- 创建本地库:git init /git clone
- 查看仓库工作区,暂存区状态:git status
- 将工作区文件添加到暂存区:git add <文件名>
- 把文件移出暂存区:git rm --cached
- 从暂存区提交到本地库:git commit (后面会要输入说明解释)文件名
更简洁的方式git commit -m “说明” 文件名 - 查看git历史版本:git log(显示当前以及前面的版本,后面的版本不会显示)
- 更简洁方式显示:git log --pretty=oneline(简洁显示) / git log --oneline(更简洁显示)
/ git reflog(显示序号,移动head会很方便,而且显示的是全部的) - 移动head:git reset --hard 局部哈希值
- 移动head:git reset --hard HEAD^^^ (后退3步,一个表示后退一步,n个表示n步)
- 移动head:git reset --hard HEAD~n (表示后退n步)
- 移动head参数:–soft(仅仅在本地库移动head指针,不重置暂存区与工作区)
–mixed(在本地库移动head指针,重置暂存区)
–hard(在本地库移动head指针,重置暂存区与工作区) - 查看全部分支(本地仓库与远程仓库):Git branch –a
查看(本地+详细信息)分支: Git branch –v
查看分支:git branch Git branch –av - 创建本地分支:git branch [分支名]
- 切换分支:git checkout –b [本地分支名字] [远程别名]/[远程仓库名字](必须用别名)
git checkout [分支名] - 合并分支 git merge [别的分支名],解决冲突:git add+ git commit(此时不能带文名)
git fetch [远程地址][远程分支] 远程拉取分支到本地。 - 给一些信息建立别名:git remote add [别名] [真实名]
- 从指定的本地库推送到远程库:git push [远程地址] [本地分支]
- 从远程库拉取到本地当前库:git pull [远程地址][远程分支]
等价于:git fetch [远程地址][远程分支] + git merge [远程地址] [远程分支] (比较谨慎的合并到本地) - 在本地生成ssh秘钥:ssh-keygen -t rsa –C [远程仓库的邮箱号]
[注意:这里-C 这个参数是大写的C] - 删除远程分支:git push [远程地址] --delete [远程分支名]
删除本地分支:git branch –d [分支名](要在别的分支才能删)