美文网首页
学习git命令

学习git命令

作者: 凯文Kevin21 | 来源:发表于2017-12-23 17:14 被阅读9次

    百度上有很多git的教程,在这里我只推荐一个人:廖雪峰的官方网站

    1.git安装

    CloverdeiMac $:sudo apt-get install git
    
    1. 查看是否安装git
    CloverdeiMac $:git
    

    3.查看git工具的版本号

    CloverdeiMac $:git version
    

    4.设置全局name和email

    CloverdeiMac $ git config --global user.name "Your Name"
    CloverdeiMac $ git config --global user.email "email@example.com"
    

    5.创建本地版本库

    CloverdeiMac $:mkdir learngit
    CloverdeiMac $:cd learngit
    CloverdeiMac $:pwd
    (pwd命令用于显示当前目录,在我的mac上这个仓库位于/User/Clover/learngit)
    

    6.把目录变成Git可以管理的仓库:

    CloverdeiMac $:git init
    Initialized empty Git repository in /User/Clover/learngit/.git/5.把目录变成Git可以管理的仓库:
    CloverdeiMac $:git init
    Initialized empty Git repository in /User/Clover/learngit/.git/
    

    7.查看隐藏的.git目录

    ls -ah
    

    8.添加文件到git本地仓库,分两步:

    第一步: git add read.txt    把文件添加到仓库缓存区
    
    第二步: git commit -m “wrote a read file”  把文件提交到仓库
    

    9.查看git仓库当前的状态

    $:git status
    

    10.查询修改的文件内容

    $ git diff read.txt
    

    11.查看修改的历史纪录

    git log
    $:git log --pretty=oneline  简洁版
    
    eg:
    d1d9c943fc272d74144e1cdb893ce80385e0e23d add GPL
    
    41db32c4936dd5d579a29b3118c6a7628c61c3d5 add distributed
    
    bfb94db7edcb99a217483a5037ba80ca8257e40c wrote a readme file
    
    Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^
    

    13.回退到上一个版本”add distributed”

    $:git reset --hard HEAD^
    

    14.要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

    git log
    
    git reset --hard d1d9c943    (d1d9c943是append GPL的commit id的前7位,我们不必写全)
    
    1. .git不算工作区,而是Git的版本库

    查看工作区和版本库里面最新版本的区别:

    $ git diff HEAD -- readme.txt
    

    16.文件修改丢弃

    (1)丢弃工作区的修改(没有add之前):
    
    $ git checkout -- readme.txt
    
    (2)丢弃工作区的修改(已经add到缓冲区):
    
    $ git reset HEAD readme.txt
    
    $ git checkout -- readme.txt
    

    17.删除文件:

    rm test.txt
    
    git status
    
    (yes).确定要删除文件:
    
    $ git rm test.txt
    
    $ git commit -m "remove test.txt"
    
    (no).删错文件了
    
    $ git checkout -- test.txt
    

    18.添加远程库

    首先你要登录github, “Create a new repo”按钮,创建一个新的仓库:learngit
    
    目前,在GitHub上的这个learngit仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
    
    现在,我们根据GitHub的提示,在本地的learngit仓库下运行命令:
    
    $ git remote add origin git@github.com:xieguangming/learngit.git
    
    xieguangming 是你自己GitHub账户名
    
    如果报错:fatal: remote origin already exists.
    
    $ git remote rm origin
    
    $ git remote add origin git@github.com:xieguangming/learngit.git
    
    origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。
    

    19.就可以把本地库的所有内容推送到远程库上:

    
    $ git push -u origin master
    
    如果报错:先cd 到本地仓库目录: $ git push origin master --force
    
    再 $ git push -u origin master
    
    由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
    
    推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样:
    
    从现在起,只要本地作了提交(add + commit),就可以通过命令:
    
    $ git push origin master
    
    把本地master分支的最新修改推送至GitHub,现在,你就拥有了真正的分布式版本库!
    
    git@github.com:xieguangming/IOTApp.git
    

    20.git 分支

     git分支查看分支 : git branch
    
    创建分支 : git branch   <name>          //git branch dev
    
    切换分支 : git checkout    <name>     //git branch master
    
    创建+切换分支: git checkout -b    <name>       //git checkout -b dev
    
    合并某分支到当前分支  git merge  <name>         //git merge dev 合并分支dev到master
    
    删除分支 : git branch -d  <name>                    //git branch -d dev
    

    21.配置别名

    $ git config --global alias.st status
    
    $ git config --global alias.co checkout
    
    $ git config --global alias.ci commit
    
    $ git config --global alias.br branch
    
    git config --global alias.unstage 'reset HEAD'
    
    git config --global alias.last 'log -1'  //配置一个git last,让其显示最后一次提交信息
    
    git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
    

    22.解决提交代码冲突

    当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成
    
    用带参数的git log也可以看到分支的合并情况:
    
    $ git log --graph --pretty=oneline --abbrev-commit
    

    23.提示fatal: remote origin already exists
    解决办法

    1、先删除远程 Git 仓库
    CloverdeiMac $ git remote rm origin
    
    2、再添加远程 Git 仓库
    CloverdeiMac  git remote add origin https://github.com/xieguangming/runtime.git
    

    git的使用-CSDN博客

    相关文章

      网友评论

          本文标题:学习git命令

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