Git 命令合集及场景使用

GIT 是面向修改的

git配置身份

git config --global user.name "Stephen_Yangs"
git config --global user.email "ys.stephen@outlook.com"

初始化资源库

创建资源库   mkdir RepositoryName
进入资源库   cd RepositoryName
常看资源库的位置 pwd
资源库初始化 git init
添加资源
##在资源库内手动添加相关的文件,以供GIT管理

添加文件资源 git add fileName            //此时通过git status 发现修改的文件从红色变为绿色,表示文件进入暂存区
添加所有变化资源 git add -A               //该文件是新添的
添加所有的资源 git add -u                //修改的,还是被删除的
资源提交     git commit -m "log说明"    //注意每次Commit会产生一个CommitID
查看当前Git状态  git status
查看git资源的变化 git diff

查看状态,查看命令,历史操作

shou various type of objects   git show
查看git提交日志    git log             //注意该指令只能用来查看git提交历史
回退到上一个版本  git reset --hard HEAD^
查看指定资源内部内容  cat  fileName
跳转到指定版本    git reset --hard commitID
查看git命令历史   git reflog          //注意该指定被用来查看git命令历史

撤销操作

##Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD

##git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支。

查看工作区和版本库里面最新版本的区别  git diff HEAD -- readme.txt

撤销修改  git checkout fileName (这是针对丢弃工作区的修改)
#######存在两种情况:1 文件修改后还未放入暂存区,此时撤销修改将恢复到和版本库一样
###################2  放入暂存区做了文件修改,撤销修改将恢复到暂存区一样内容

撤下暂存区的修改   git reset HEAD fileName  (这是针对丢弃暂存区的修改)

文件移除、提交

文件删除 rm fileName 
确定要删除 git rm fileName
删除后的提交工作  git commit -m "log说明"
###小提示:先手动删除文件,然后使用git rm <file>和git add<file>效果是一样的。

#一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:

git checkout – fileName

#git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

---------------------------------------------------------------------------------------------
#你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的
创建SSH Key  ssh-keygen -t rsa -C "emailName@xxx.com"

创建远程仓库github

##github 在github上创建远程库                   git@github.com:Stephen-Yangs/Architecture.git
关联github上的一个远程库   git remote add origin git@github.com:Stephen-Yangs/Architecture.git           //ssh方式
关联github上的一个远程库   git remote add origin https://github.com/Stephen-Yangs/Architecture.git       //https方式
查看当前git的远程仓库版本   git remote -v         https://github.com/Stephen-Yangs/Architecture.git
移除远程仓库关联 git remote rm origin
资源仓库内容推送  git push -u origin master   //首次
#由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
首次推送之后可以简写命令为   	    git push origin master
以后每次推送之前都先需要update : git pull origin master

克隆资源库

从远程克隆(资源库)到本地 git clone git@github.com:Hubery-Yang/YS-BBS.git
###使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https。

分支管理

如果文件名带空格,命令行里面这样写 fileNameFirst" "fileNameLast

创建并且切换到branchName分支  git checkout -b branchName
##git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
创建分支  git branch branchName
切换分支  git checkout branchName
查看所有分支 git branch    //结果中,当前分支有一个*
合并指定分支到当前分支 git merge branchName       //这个合并使用了默认的Fast Forward模式
合并完成后,就可以放心地删除branchName分支了 git branch -d branchName
//Fast Forward模式下的merge,当我们删除分支后,通过git log并不能查看到分支的合并记录

合并分支,并且禁用Fast Forward模式   git merge --no-ff -m "merge with no Fast Forward" branchName//注意禁用Fast Forward模式下,合并需提交操作,所以有命令里面包含了-m "log说明"
//禁用了Fast Forward模式下的merge,当我们删除分支后,通过git log依旧可以查看到分支的合并记录

分支冲突解决

两个分支对同一内容作了修改,系统不能确定该保存那一份,此时需要人为确定

#人为对冲突部分进行解决(人为判断取舍),Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容
#然后通过一个分支进行添加,提交。最后进行两个分支的合并
#当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
#解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。
查看分支合并图  git log --graph

Bug分支,存储当前工作,去其他分支上干事

存储当前分支上的工作 git stash
恢复有隐藏工作的分支上工作  git stash apply
丢弃隐藏工作内容 git stash drop
//上面两个操作可以用一个命令解决  git statsh pop
查看隐藏工作列表 git stash list
由于你可以多次stash,所以恢复指定的stash:  git stash apply stash{0}
丢弃一个没有被合并过的分支,git branch -D branchName 强行删除

多人协作+远程仓库–远程仓库的默认名称是origin

#当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了
查看远程库的信息  git remote
查看远程库的信息信息 git remote -v
#本地新建的分支如果不推送到远程,对其他人就是不可见的;
从本地推送分支  git push origin branchName 如果推送失败,先用git pull抓取远程的新提交;
在本地创建和远程分支对应的分支,使用git checkout -b branchName origin/branchName,本地和远程分支的名称最好一致;
建立本地分支和远程分支的关联,使用git branch --set-upstream branchName origin/branchName;
从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

为git分支打上标签,方便查找

打标签 git tag tagName
对指定提交记录打上标签   git tag tagName commitID
查看标签  git tag
查看标签信息  git show tagName
创建带有说明的标签,用-a指定标签名,-m指定说明文字  git tag -a tagName -m "log说明" commitID
删除指定标签  git tag -d tagName
将标签推送到远程  git push origin tagName
推送全部tag到远程 git push origin --tags
删除远程标签 git push origin :refs/tags/tagName

git log/git reflog命令退出方式

英文编辑环境下 按下Q按键
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值