• Git命令总结


    pwd  用于显示当前目录

    git init  把这个目录变成Git可以管理的仓库
    ls (-ah)  可以看见(隐藏)目录
    git add file 告诉Git,把文件添加到仓库
    git commit -m "log" 告诉Git,把文件提交到仓库
    git status 可以让我们时刻掌握仓库当前的状态
    git diff 可以查看修改内容
    git diff HEAD -- file命令可以查看工作区和版本库里面最新版本的区别

    git reset --hard commit_id

    版本回退

            Git也是一样,每当你觉得文件修改到一定程度的时候,就可以“保存一个快照”,这个快照在Git中被称为commit
    一旦你把文件改乱了,或者误删了文件,还可以从最近的一个commit恢复,然后继续工作,而不是把几个月的工作成
    果全部丢失。
            在Git中,用HEAD表示当前版本,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一样),
    上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
    git log --pretty=oneline 可以查看提交历史,以便确定要回退到哪个版本
    git log --graph --pretty=oneline --abbrev-commit 查看分支历史
    git reflog 查看命令历史,以便确定要回到未来的哪个版本

    Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念:

    工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

    Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个

    分支master,以及指向master的一个指针叫HEAD

    前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的:

    第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

    第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

    因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。

    你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。

    git checkout -- file 可以丢弃工作区的修改
    git checkout 其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原“
    git reset HEAD file 可以把暂存区的修改撤销掉(unstage),重新放回工作区
    git rm 从版本库中删除该文件

    远程库操作:

    要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git

    关联后,使用命令git push -u origin master第一次推送master分支的所有内容

    此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改

    git clone git@server-name:path/repo-name.git 克隆一个本地库
    git branch 查看当前分支
    git branch name创建分支
    git checkout -b name 表示创建并切换分支
    git merge 用于合并指定分支到当前分支
    git branch -d name 删除分支
    git merge --no-ff -m "log" name 

    通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。如果要强制禁用
    Fast forward
    模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。

     

    git stash 可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作

    git stash list 查看先前工作现场

    git stash pop 恢复的同时把stash内容也删了
    git branch -D name 要丢弃一个没有被合并过的分支,可以通过强行删除
    git remote -v 查看远程库的信息
    git push origin branch-name 推送分支,就是把该分支上的所有本地提交推送到远程库

     

    多人协作的工作模式通常是这样:

    1. 首先,可以试图用git push origin branch-name推送自己的修改

    2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并

    3. 如果合并有冲突,则解决冲突,并在本地提交

    4. 没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功

    如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令

    git branch --set-upstream branch-name origin/branch-name

    Git的标签

      虽然是版本库的快照,但其实它就是指向某个commit的指针

    git tag -a name -m "log" commit-id 就可以打一个新标签 

    git tag 查看标签

    git show tag-name 可以看到标签说明文字
    git push origin tag-name 可以推送一个本地标签
    git push origin --tags 可以推送全部未推送过的本地标签
    git tag -d tag-name 可以删除一个本地标签
    git push origin :refs/tags/ tag-name 可以删除一个远程标签
     
  • 相关阅读:
    jQuery.fn.extend与jQuery.extend到底区别在哪?
    近来随想
    利用less监视模式实时预览样式刷新浏览器
    前端自动化神器LiveReload配合浏览器和less/sass使用方法
    关于opacity透明度子元素继承现象的若干研究以及hack方法
    使用background和background-image对CSS优先级造成影响
    HTML布局篇之双飞翼(圣杯)布局
    IE使用最高版本设置
    Add data when form is submitted
    fixed window.location.origin useless in IE
  • 原文地址:https://www.cnblogs.com/rudylemon/p/6418444.html
Copyright © 2020-2023  润新知