Git基本命令
基于指针和快照
一、基本命令操作
----8月19日----
1.本地库初始化:git init;(生成.git目录,存放本地库相关的子目录和文件)
2.设置用户签名:git config user.name demo;git config user.email demo 项目级别设置,当前仓库 将相关信息保存在.git/config下
git config user.name --global demo;git config user.email --global demo 系统级别设置,全局 将相关信息保存在~/.gitconfig下
(区分不同开发人员身份,不设置签名无法git commit)
----8月26日----
3.查看本地库(工作区、暂存区)状态:git status
4.文件添加到暂存区(新添加的文件必须先执行此操作再提交,修改的可不用):git add <file>
5.从暂存区移除文件:git rm --cached <file>
6.从暂存区提交到本地库:git commit <file> 提交时进入编辑器为提交添加注释 带注释提交:git commit -m "my annotation" <file>
7.查看提交历史记录:git log
git log --pretty=oneline(单行显现)
git log --oneline(单行显现)
git reflog(到某一个版本需要移动步数,显示前后全部版本)
8.版本的前进后退(本质:HEAD指针的操作,基于索引):
git reset --hard <hashCode>
git reset --hard HEAD ^ (往后退一步,多少个^则多少步)
git reset --hard HEAD ~n (往后退一(n)步吗
git reset 三个参数的对比: git reset --soft :仅仅在本地库移动HEAD指针(需重新commit以保持一致);
git reset --mixed :在本地库移动HEAD指针、重置暂存区(需重新commit以保持一致);
git reset --hard :在本地库移动HEAD指针、重置暂存区、重置工作区。
9.删除文件找回:(删除前,文件存在时的状态需提交到了本地库)
通过git reset --hard <hashCode> 找回
--删除操作已经提交到本地库:指针位置指向历史记录
--删除操作尚未提交到本地库:指针位置使用HEAD
10.比较文件差异(不带文件名比较多个文件):
git diff <file>:将工作区中的文件和暂存区进行比较;
git diff <hashCode> <file> :将工作区的文件和本地库历史记录比较
二、分支的处理
1.查看所有分支:git branch -v
2.创建分支:git branch <branch_name>
3.切换分支:git checkout <branch_name>
4.合并分支(需切换到接收修改的分支上):
git merge <branch_name>
5.解决冲突:①编辑文件,删除特殊符号;
②把文件修改到满意的程度,保存退出;
③git add <file_name>;
④git commit -m ‘my annotation’(此时不能带文件名)。
----9月2日----
三、关于github的操作
1.给查看所有创建别名:git remote -v
2.创建别名:git remote add <nikeName> <url>
3.将本地内容推送到远程库:git push <url> <branch>
4.将远程内容克隆到本地:git clone <ulr>
三个效果:①完整的把远程库下载到本地;②创建origin远程地址别名;③初始化本地库
5.将远程的更改拉到本地:git pull <url> <branch> (相当于git fetch 和git merge 的结合)
6.跨团队协作:首先Fork资源-------->本地修改并推送到自身远程库-------->pull request--------> new pull request-------->create pull request-------->comfirm merge