您的位置:首页 > 运维架构 > Shell

GIT -- bash命令与github之间的操作合集

2018-08-23 15:03 369 查看
版权声明:QAQ https://blog.csdn.net/mineblogjw/article/details/81980792

纵使图形化工具遍地,我对bash的爱意也是无法停止的,因为生命的意义在于装13。

git config --global user.name ""
git config --global user.email ""    //设置用户名与邮箱
git config --global color.ui true    //命令会显示不同的颜色

GitHub 界面(对不起英语不好):
code:代码
issues:问题
pull request:拉取请求
projects:项目
wiki:
insights:
settings:设置

commit:提交
branch:分支
releases:版本
contributor:贡献者


---------------------本地仓库操作--------------------------------------------------------
mkdir 文件夹名   //创建空目录(文件夹)
mkdir -p test/a    //-p代表没有test便创建test(没有-p 同时 没有test报错)
pwd    //显示当前目录路径
rm -rf    //强制删除(不要问我为什么跑路)

git init    //将当前目录变为仓库
ls -ah    //查看当前目录下所有列表(包括隐藏)

git add 文件名    //追踪文件   git add .(追踪全部 点前面有个空格)
git commit -m '**'     //提交到仓库(如果忘了-m进入另外一个编辑器写入提交信息之后  开启大写--按下esc--2下Z 退出)
git status    //查看仓库文件状态
git diff 文件名    //查看文件修改内容
git diff HEAD -- 文件名    //查看工作区和版本库的文件区别
cat 文件名    //查看文件内容

git status -s /-short    //更为紧凑的格式输出:
    MM-工作区被修改并且提交到暂存区后又在工作区被修改-暂存区与工作区都有该文件修改记录
    M-文件被修改但是没有放入暂存区
    M-文件被修改并且放入暂存区
    A-新添加到暂存区中的文件
    ??-新添加的未跟踪的文件

git log    //历史纪录   --pretty=oneline
git log --graph    //可以看到分支合并图
git reset --hard HEAD^    //退回上个版本(上上个版本 HEAD^^../..上100个版本HEAD~100)
git reflog    //记录每一次命令(退回老版本想返回新版本--用来查看新版本commit id)
git reset --hard 1094a(版本commit id)

git checkout -- 文件名    //丢弃工作区的修改
    一种是自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
    一种是已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态
    总之,就是让这个文件回到最近一次git commit或git add时的状态
    (git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。)
git reset HEAD 文件名    //把暂存区的修改撤销,返回工作区

---------------------远程仓库操作--------------------------------------------------------
远程服务器 ==比如 github (需配置ssh公钥)(Windows下打开Git Bash,创建SSH Key:)
$ ssh-keygen -t rsa -C "youremail@example.com"

------------本地>>远程(上传自己的项目)(先init add commit一把梭)-------------------
$ git remote add origin git@github.com:michaelliao/learngit.git    //将本地库与远程库关联
(michaelliao替换成自己的GitHub账户名)(远程库的名字就是origin 可修改)
(当需要关联多个库的时候  名字另外取)

$ git push -u origin master    //推送本地库内容到远程库
(-u 将 本地master分支 内容推送到 远程新的master分支,并且关联2个分支)
(以后本地做修改提交可不加 -u)

git remote    //查看远程库信息(名称) 一般为origin
git remote -v    //更详细的信息
git remote rm origin    //删除已有的远程库关联

------------远程>>本地-------------------
$ git clone git@github.com:michaelliao/gitskills.git    //克隆远程仓库到本地

---------------------分支管理--------------------------------------------------------
git branch dev    //创建      
git checkout dev    //切换
git checkout -b dev    //创建本地分支并且切换       -b 表示创建并切换
git branch    //查看当前分支(列出所有分支,当前分支前面标注 * 号)
git branch -d dev    //删除分支    -D强制删除

git checkout -b dev origin/div     //创建远程库origin的dev分支到本地,相关联
$ git branch --set-upstream-to=origin/dev dev    //设置本地dev与origin/dev跟踪链接

git merge dev    //合并制定分支到当前分支    提示信息Fast-forward: 快进模式的合并(修改指针)
git merge --no-ff -m "merge with no-ff" dev    // --no-ff 表示禁用Fast-forward;-m 描述信息
合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
git stash    //储藏当前工作区
git stash list    //查看储藏的工作现场
git stash apply    //恢复工作区,但是stash内容不删除
git stash apply stash@{0}    //恢复指定工作区
git stash drop    //删除stash内容
git stash pop    //恢复工作区,同时删除stash

git rebase    //把本地未push的分叉提交历史整理成直线;方便查看历史提交

---------------------标签--------------------------------------------------------
切换到需要标签的分支
git tag <name>    //打上新标签
git tag    //查看所有标签(标签列出按字母排序)
git tag <name> <commit id>    //对应之前commit过后的版本打上标签
git tag -a <name> -m "" <commit id>    // -a 指定标签名   -m 指定说明文字
git show <tagname>    //查看tagname的标签信息
git tag -d v0.1    //删除本地tag标签
git push origin <tagname>     //推送标签到远程
git push origin --tags    //推送全部本地tag标签
删除本地tag之后 git push origin :refs/tags/v0.1    //删除远程tag

---------------------忽略特殊文件--------------------------------------------------------
新建 .gitignore  写入需要忽略的文件----战略合作www.baidu.com
(未完待续。。。)

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: