git是发布式版本控制,它没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,工作的时,不需要联网,多方协作时,只需把各自的修改推送到远程就可以了,但是通常也有一台充当“中央服务器”的电脑,它方便“交换”大家的修改;并且和集中式版本控制(cvs/svn)系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了,再也不用担心代码丢失或损坏了!
接下来让我看看有哪些常用命令以及它们之间的区别:
git clone XXX 克隆一个版本库
git remote -v 查看远程库相关信息(有push表示有推送权限)

常用基本操作:
git checkout -b 分支名 新建分支并切换 (利用指针的指向来控制分支使用的)
(等同于 git br xxx + git checkout 分支名)
git pull origin 分支名 拉取分支内容
git status 查看修改
git add . 添加修改到暂存区
git commit -m '注释' 暂存区内容提交到当前分支(可多次add一次commit)
git push origin 分支名 将分支推送到远程
1、代码回退:
没有add
,代码停留在工作区:
git checkout xxx/-- xxx 撤销某个文件的修改(xxx如果是分支名称,则会切换分支,这时撤销可使用-- xxx来执行)
操作add后
,代码进入暂存区:
git reset HEAD xxx 清理暂存区对应文件
操作commit后
,代码已合并到本地分支:
git log 查看提交日志(从近到远的依次显示)
git reset --hard +commit iD(可以只写前几位,git会自动查询) 回退到指定版本
git reflog 查看命令历史,记录每一次命令(包括回退)
2、代码差异比较:
1. git diff 工作区和暂存区比较
2. git diff --cached 暂存区和分支内容比较
3. git diff HEAD (-- xxx) 工作区和分支内容比较(具体比较某个文件)
3、代码暂存:(若代码需要临时保存,不想commit提交,可以使用stash)
git stash 将当前内容暂存
git stash list 查看暂存列表
git stash pop 恢复暂存内容并删除(等同:git stash apply + git stash drop)
4、删除分支:
git br -d xxx
git br -D xxx 强制删除
5、.gitignore文件配置
有些时候,Git工作目录存在的文件(例如数据库相关配置文件)不能或者不想提交(例如node_modules),这时候你就可以在.gitignore中配置

6、别名配置
想将git status变成git st吗?单词缩写是不是方便了记忆,并且使用上更容易呢?那接下来我们就看看,如何配置git的别名吧!
git config --global alias.st status

Q:为什么要加--global?
A: 配置Git的时候,加上--global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用。
Q: 如何修改别名?
A: 可以找到配置文件,直接编辑,保存后方可使用
Q: 配置文件在存放在哪里?
A: 每个仓库的Git配置文件都放在.git/config文件中,而当前用户的Git配置文件在用户主目录下的一个隐藏文件.gitconfig中

网友评论