git整理

git一些需要记得东西

远程仓库

添加SSH公钥
# 切换目录,MAC中目录的第一个字符如果是 `.` 表示改文件夹是隐藏文件夹
cd ~/.ssh
#如果.ssh文件夹不存在,可以执行指令自行创建
mkdir ~/.ssh
#生成RSA 密钥对 全程回车键
ssh-keygen -t rsa -C "你的邮箱地址"
#查看公钥内容并复制添加到git账号中(github 码云之类)
cat ~/.ssh/id_rsa.pub 
#测试码云 SHH连接
ssh -T git@git.oschina.net
#终端提示 Welcome to Git@OSC, xxx!` 说明连接成功 就可以对这个仓库进行操作了
克隆仓库
#配置成功后获取项目ssh连接地址 到本地你的创好的项目空文件夹运行 git 命令
git clone git@git.oschina.net:xxx/ProjectName.git
#整个项目克隆下来,是一个你项目名的文件夹 省去了git初始化 添加远程仓库 设置本地远程分支对应关系等操作
添加远程仓库
git remote add <remoteName> git@git.oschina.net:xxx/ProjectName.git
# origin 是自己命名的远程仓库名称 后面是远程仓库的ssh地址
删除远程仓库
git remote rm <remoteName>
重命名远成仓库
git remote rename <oldName> <newName>

历史版本

查看提交历史 包括作者 时间
git log
查看提交历史 只查看历史
git log --pretty=oneline
查看提交历史 缩写
git log --abbrev-commit
查看提交历史 更加缩写
git log --pretty=oneline --abbrev-commit
退回上个提交的版本
git resert --hard HEAD^
退回版本号的版本
git reset --hard <commitId>
<!--HEAD is now at 3628164 append GPL-->
查看修改(未提交之前)
git diff <fileName>
撤销工作区文件的修改
git checkout -- <fileName>
撤销git add 到暂存区的文件
git reset HEAD <fileName>

git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。

删除文件

版本库删除文件,直接删除文件再提交即可为一个新版本

文件删除错了
git chekout -- <fileName>
<!--撤销工作区文件的修改即可-->

分支管理

创建分支并且换到新分支
git checkout -b <branchName>
#相当于执行以下两条命令
git branch <branchName>
git checkout <branchName>
查看分支 当前分支前面有个*号
#本地分支
git branch
#远程分支
git branch -r
#所有分支
git branch -a
切换分支
git checkout <branchName>
文件提交
#工作区指定文件提交到暂存区
git add <fileName>
#工作区文件全部提交到暂存区
git add .

#暂存区提交至版本库
git commit -m "<message>"
分支合并
#在当前分支下合并其他分支 
git merge <branchName>          //会弹出编辑框要求commit message
git merge -m "<message>" <branchName>           //合并前 commit message

如果当前分支版本是合并分支之前的一个版本 会当前分支就会增加合并分支上最新版本的修改,合并为当前分支

如果两个分支都有新版本而且修改了相同的文件,这时候就会产生合并冲突

解决冲突
git status          //查看当前文件状态 "both modified : xxx"
#编辑这个文件    将其中的冲突标识去掉 手动修改文件内容
git add .           
git commit -m ""    
#将合并冲突的文件修改解决成为新版本并提交 当前分支即为此版本 
删除分支
git branch -d <branchName> 

git branch -D <branchName>          //强制删除分支

修改过程中处理之前版本bug

储藏工作现场
git add .           //将工作现场提交
git stash           //储藏现场状态
git stash list      //查看现场储藏列表
git status          //发现 working tree clean 
#这个时候就可以处理bug了
#处理完成后 add commit 操作完成
恢复现场
git stash apply     //恢复stash列表中最新的一个现场
git stash drop      //删除stash列表最新的一个状态
恢复现场精简版本
git stash pop       //恢复stash最新一个现场并且删除最新一条stash列表状态,等于上面两句

拉取和推送 pull & push

拉取代码
git pull <remoteName> <branchName>  //从远程仓库的某分支拉取代码到本地
推送代码
git pull <remoteName> <branchName>  //推送本地代码到远程仓库的某分支
设置本地远程分支对应关系
git pull --set-upstream origin <remoteBranchName>

#或者如下
vim .git/config     //可以配置分支和远程仓库

#设置好对应关系的 
git pull    //以后直接是从对应关系的远程分支拉取
git push    //以后直接是推送到对应关系的远程分支
忽略提交
vi .gitignore   //这个文件中将不需要提交的文件或目录添加进去即可
                //每个文件或文件夹 独占一行

git一些基础配置

醒目显示
git config --global color.ui true   //这样适当位置显示不同的颜色
用户信息
git config --global user.name "name"
git config --global user.email "email"
posted @ 2018-05-18 15:48  Rainyeah  阅读(129)  评论(0)    收藏  举报