Git(二)Git基本操作

一、Git全局设置

git –version 查看版本信息
git config –global user.name “aa” 配置用户名
git config –global user.email 邮箱 配置邮箱
git config –list 查看配置结果
git config –global core.autocrlf false 让git不要管windows/unix换行符转换的问题
git config –global core.ignorecase false windows上还需配置

二、基本操作

git ssh key pair配置

  1. ssh-keygen -t rsa -C 邮箱
  2. ssh-add ~/.ssh/id_rsa 如果出现could not open a connection…的错误先执行eval ssh-agent,
    在执行ssh-add ~/.ssh/rsa成功ssh-add –l就有新加的rsa了
  3. cat ~/.ssh/id_rsa.pub 查看公钥

git add 文件名 把文件修改添加到暂存区
git commit -m “注释内容” 把暂存区的所有内容提交到当前分支 -ma 将add和commit两步合并为一步
git log –pretty=oneline 显示日志,但是内容较少
git reset –hard HEAD^ 回退到当前版本的上一个版本(HEAD指针指向当前版本)
回退之后要想恢复新版本,必须找到新版本的commit id
git reset –hard commit_id 回到未来的某个版本
git reflog 记录每一条命令,以便确定回到未来那个版本
git log 查看提交历史,以便回退到那个版本
git log –graph 分支合并图

三、Git三大阶段

working tree:就是你所工作在的目录,每当你在代码中进行了修改,working tree的状态就改变了。
index file:是索引文件,它是连接working tree和commit的桥梁,每当我们使用git-add命令来登记后,
index file的内容就改变了,此时index file就和working tree同步了。
commit:只有commit了,我们的代码才真正进入了git仓库。
我们使用git-commit就是将index file里的内容提交到commit中。
git diff 查看文本区别
git diff:是查看working tree(工作区)与index file(暂存区)的差别的。
git diff –cached:是查看index file与commit的差别的。
git diff HEAD:是查看working tree和commit的差别的。(HEAD代表的是最近的一次commit的信息)
git diff -w 消除 No newline at end of file提示,每一个文件最后一句一回车换行结束

git rm 删除文件
git checkout – readme.txt 撤销工作区的修改(其实就是用版本库的版本替代工作区的版本,无论是修改还是删除)
(1)readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
(2)readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
总之,就是让这个文件回到最近一次git commit或git add时的状态
git reset HEAD 文件名 将提交到暂存区的修改撤回到工作区,然后再用git checkout指令丢弃工作区的更改

提交到远程仓库
git remote add origin url 连接远程仓库
git push -u origin master 提交到远程仓库的master分支(-u 关联本地的分支和远程的分支,下次只要输入git push就行)
第一次提交要加-f参数,远程库中没有此版本,需要强制提交
git remote -v 查看远程连接
从远程仓库克隆
git clone url 克隆远程仓库的项目到本地
git checkout -b dev 创建dev分支并切换
-b参数表示创建并切换 ,该命令相当于两条命令git branch dev和git checkout dev
git branch 查看当前分支(当前分支前会有一个*号)
git checkout 分支名 切换分支
git merge 分支名 合并某分支到当前分支(默认使用fast forward模式,但是合并后会丢掉分支信息)
–no-ff 关闭forward模式,以普通模式合并(普通模式合并后的历史有分支,能看出来做过合并)
git branch -d 分支名 删除某分支(合并过的)
git branch _-D 分支名 删除某分支(没有合并过的,该分支的所有修改就地销毁)
切换到dev分支下修改并commit,修改是保存在dev分支下,切换回master分支后,dev下提交的修改并不会生效,一旦切换到dev
分支下,才会出现修改内容
一般情况下,是在分支完成某个任务,完成后用merge命令与master合并,然后在删除分支

git stash 保存当前的工作现场
git stash list 查看工作现场列表
git stash apply 恢复工作现场,但是恢复后,stash内容并不删除,需要 用git stash stop来删除
git stash apply stash@{0} 指定列表中项
gti stash pop 恢复的同时删除stash的内容

git branch -r 查看远程分支
git checkout –b v1.0 origin/master 生成新的分支v1.0,远程也会有v1.0分支
git push origin HEAD –u 将分支推送到远程的同名分支(HEAD指向本地最新的提交版本)
git push origin v1.0 –u origin是远程主机名
git push <远程主机名> <本地分支名>:<远程分支名> 将本地分支的更新推送到远程主机

查看远程库信息,使用git remote -v;
本地新建的分支如果不推送到远程,对其他人就是不可见的;
从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;
在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
建立当前分支和远程分支的关联,使用git branch –set-upstream-to 本地分支名 origin/远程分支名(本地分支要先切换到需要连接的分支) 也可以考虑 git branch -u origin/远程分支名
从远程抓取分支,使用git pull,如果有冲突,要先处理冲突
git branch -vv 本地分支与远程分支的映射关系
git branch –unset-upstream 撤销本地分支与远程分支的映射关系

猜你喜欢

转载自blog.csdn.net/zhang918784312/article/details/80870971