美文网首页
最牛X的Git

最牛X的Git

作者: lmfei | 来源:发表于2019-08-15 18:24 被阅读0次

Git相关概念: 

Git是目前世界上最先进的分布式版本控制系统!!!

开发语言:C

Git是分布式版本控制系统:分布式版本控制系统,每个人都是一个完整的版本库

SVN是集中式版本控制系统:集中式版本控制系统,版本库集中放在中央服务器

工作区和暂存区:

工作区就是我们项目下面新建的那个空文件夹,然后我们会通过git init生成Git的版本库,Git版本库里存了很多内容,其中最重要的就是暂存区(stage),还有Git为我们自动创建第一个分支master,以及指向master的一个指针HEAD


Git在Mac OS X上的安装:

1.通过homebrew,然后通过homebrew安装Git

2.通过下载Xcode,Xcode集成了Git

安装成功后,设置用户名和Email地址

git config --global user.name "username"

git config --global user.email "email@example.com"


本地Git库的建立:

一创建空目录

mkdir xxx  --新建文件

cd xxx

pwd --显示当前目录

二将目录变成Git可以管理的仓库

git init

1.添加文件,需要两步 

    git add xxx

    git commit -m "提交描述”

2.查看当前仓库的状态,查看哪些文件有改动

    git status

3.查看改动文件的具体改动内容

    git diff xxx  比较的是工作区与暂存区的区别

    git diff --cached xxx 比较的是暂存区与Git版本库的区别

    git diff HEAD -- xxx 比较的是工作区与Git版本库的区别

4.提交改动内容,与提交新文件命令相同,见1

5.历史记录的查看

    git log  日志过多时,使用enter向下看 q退出

    嫌输出日志太多:git log --pretty=oneline

6.版本回退

    回退到上一个版本: git reset --hard HEAD^

    回退到上上个版本: git reset --hard HEAD^^

    回退到往上100个版本: git reset --hard HEAD~100

    回退到指定Commit id的版本: git reset --hard id前几位

7.查看每次提交的Commit id

    git reflog

8.撤销修改

工作区的修改撤销有两种情况

           一种是修改没有提到暂存区,则撤销回版本库的状态;

           另一种是修改已经被提交到了暂存区,则撤销回暂存区的状态

            git checkout — xxx    

将暂存区的内容回退到版本库的状态

            git reset HEAD xxx

9.文件通过文件管理器或者rm指令被删除

真的需要删除,则使用指令将git rm xxx 并git commit -m 删除版本库的文件

如果误删,则使用git checkout — xxx恢复文件


使用GitHub作为远程仓库

1.申请github账号

2.创建SSH Key  在用户主目录,看看有没有.ssh目录,如果有,再看看这个目录下吗有没有id_rsa和id_rsa.pub这两个文件

如果没有,创建SSH Key:

ssh-keygen -t rsa -C"email.com"

3.登录github,打开Account setting, SSH Keys页面:然后,点击Add SSH Key,填上任意Title,在Key文本框里粘贴id_rsa.pub里的内容

添加远程库

1.在github上点击Create a new repo创建一个新的仓库

2.关联本地库

git remote add origin git@github.com:github-name/learngit.git

3.本地库内容推送到远程库

git push -u origin master

4.本地做了修改,通过命令远程提交

git push origin master

注:push和pull的时候每次都要输入密码 原因及解决方法:

原因:更新到 10.12.3 后,每次使用 ssh 时都需要输入私钥的密码, ssh-agent 并没有自动解锁私钥

解决方法:ssh-add /Users/xxx/.ssh/id_ras //PS:每次重启都需要进行一次

从远程库克隆

git clone git@github.com:github-name/learngit.git

11.创建与合并分支

git checkout -b dev(分支名)  创建并切换分支 

等价于

git branch dev         创建分支

git checkout dev     切换分支

git merge dev      合并指定分支到当前分支

git branch -d dev  删除分支

git branch -D dev1     强行删除未合并的分支

git branch 查看分支  *指向当前分支

git log —graph —pretty=oneline —abbrev-commit    查看分支的合并情况

git merge —no-ff -m '分支合并’ dev  —no-ff表示禁用Fast forward

12.多人协作

git remote -v 查看远程库信息

git push origin branch-name 推送失败,先用git pull抓取远程的新提交,如果git pull提示no tracking information,则说明本地分支与远程分支的链接关系没有建立;通过该指令可以将本地已有分支创建远程的分支

git checkout -b branch-name origin/branch-name 本地创建和远程分支(远程分支已存在)对应,名称最好一致

git branch —set-upstream-to branch-name origin/branch-name|git branch —set-upstream-to=origin/branch-name branch-name 建立本地分支和远程分支的关联

创建远程没有的分支,并进行关联

    git checkout -b branch-name 创建本地分支

    git push origin branch-name 提交本地创建分支

本地创建分支(远程分支已存在),再与远程关联

    git checkout -b branch-name

    git branch —set-upstream-to=origin/branch-name branch-name

    git pull

本地创建git库与远程进行关联 如果远程库有文件,需要在关联后首次git pull时 进行额外处理

    git remote add origin git@github.com:/github-name/LearnGit.git

    git pull origin master —allow-unrelated-histories

13.标签管理

git tag  v1.0  打一个新标签

git tag     查看标签    

git tag v1.0 commit-id  指定commit-id打标签

git tag -a tag-name -m tag-description  commit-id  通过指定commit-id指定标签名并添加描述打标签

git show v1.0    查看标签具体信息

git tag -d v1.0  删除本地标签

git push origin v1.0 推送某个标签到远程

删除远程标签

git tag -d v1.0 先删除本地标签

git push origin :refs/tags/v1.0 再删除远程标签

14.自定义Git

忽略特殊文件,在工作区的根目录添加.gitignore

    git add xxx报错 — The following paths are ignore by one of your .gitignore files

    可以通过git add -f xxx     强制添加到Git

    git check-ignore -v xxx 命令检查看是不是哪个规则写的有问题

配置别名

    git config —global alias.ci commit  为commit设置别名ci

    git ci -m 'haha'  <=> git commit -m 'haha'

参考资料:https://www.liaoxuefeng.com/wiki/896043488029600

相关文章

  • 最牛X的Git

    Git相关概念: Git是目前世界上最先进的分布式版本控制系统!!! 开发语言:C Git是分布式版本控制系统:分...

  • Centos6.X 安装最新版的git

    CentOS6.X自带的git版本是1.7.1 卸载自带的git 1、# yum remove git 2、下载最...

  • 最牛X的事情

    最牛X的事情,一年前貌似没有,平稳度过,两年前,做了一个重要的决定,五年前,同样的做了一个重要的决定。这应该是我2...

  • 最牛X 的事情

    人生如白驹过隙,转瞬即逝。蓦然回首,已走过人生的33个年头,如今是两个孩子的妈妈,过着平凡普通的生活。 ...

  • 最牛X的事情

    过去5年做过最牛×的3件事,现在回想起来,也挺唏嘘的······ 1、 高中辍学,想当初刚从学校出来的时候,就像逃...

  • 最牛X的事情

    写下这个标题,我的指尖有点小颤抖,我的嘴角还带着一点自嘲的微笑。 活了这么大半辈子,没干过一件自己觉得特别牛哄哄可...

  • 最牛X的事情

    过去的日子,平凡而踏实。我相信一切所得均要付出同等的代价,所以遇事不慌乱,仔细地走好每一步,现今所遇所得均与过往付...

  • 最牛X的事

    是实现自己吹的各种牛X

  • 关于你的最牛X的事情

    最牛X的事情 看到今天的题目,觉得挺难为情的,因为一直认为最牛X的事情是别人眼中认为最成功的事情,自己没有做过什么...

  • ffmpeg安装亲测有效果

    git clone git://git.videolan.org/x264.git cd x264 ./confi...

网友评论

      本文标题:最牛X的Git

      本文链接:https://www.haomeiwen.com/subject/uemfrctx.html