Git常用命令

常用git   命令

    绑定用户名            $ git config --global user.name "Your Name"
    绑定邮箱            $ git config --global user.email "email@example.com"
    让Git 显示颜色            $ git config --global color.ui true
已经配置的别名            
                    $ git config --global alias.st status    
                    $ git config --global alias.ck checkout
                    $ git config --global alias.cm commit
                    $ git config --global alias.br branch
                    $ git config --global alias.unstage 'reset HEAD'
                    $ 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"
                    $ git config --global alias.lgg 'log --graph'
版本库操作
    把这个目录变成Git可以管理的仓库     $ git init
    把文件添加到仓库        $ git add readme.txt
    把文件提交到仓库        $ git cm -m "wrote a readme file"    ($ git commit -m "wrote a readme file")
    查看仓库当前的状态        $ git st                    ($ git status)
    查看具体修改            $ git diff readme.txt 
    查看从最近到最远的提交日志    $ git log
    查看简单提交日志        $ git log --pretty=oneline
    退到上一个版本(HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,
        当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100)
                    $ git reset --hard HEAD^
    退回指定的版本            $ git reset --hard 1094a(版本号前几位)
    把暂存区的修改回退到工作区    $ git unstage readme.txt            ($ git reset HEAD readme.txt)
    查看每一次版本命令        $ git reflog
    禁用自动转换            $ git config --global core.autocrlf false
    比较工作区文件与暂存区文件(上次git add 的内容)区别
                    $ git diff 
    比较暂存区的文件与仓库分支里(上次git commit 后的内容)的区别
                    $ git diff --cached 
    丢弃工作区的修改        $ git ck -- readme.txt            ($ git checkout -- readme.txt)
    从版本库中删除该文件        $ git rm test.txt
远程库操作
    本地关联远程库            $ git remote add origin git@github.com:monicaaish/monica.git
    克隆一个本地库            $ git clone git@github.com:michaelliao/gitskills.git
    将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数
        使用git push了        $ git push -u origin master    
        (加了参数-u后,以后即可直接用git push 代替git push origin master)
创建与合并分支
    查看分支            $ git br                    ($ git branch)
    创建分支            $ git br dev
    切换分支            $ git checkout dev
    创建+切换分支            $ git checkout -b dev
    合并dev分支到当前分支        $ git merge dev
        禁用Fast forword     $ git merge --no-ff dev
    删除分支            $ git br -d dev
解决冲突
    查看分支合并图产品        $ git lgg                    ($ git log --graph)
    查看分支合并情况        $ git lg                    ($ git log --graph --pretty=oneline --abbrev-commit)
错误分支
    把当前工作现场“储藏”起来,等以后恢复现场后继续工作
                    $ git stash
    查看存储的工作现场列表        $ git stash list
    恢复工作现场:
        1.恢复后,藏匿内容并不删除    $ git stash apply 
           删除藏匿内容        $ git stash drop
        2.恢复的同时藏匿内容也删除    $ git stash pop
    恢复指定藏匿内容        $ git stash apply stash@{0}
    强行删除分支            $ git br -D feature-vulcan
多人协作
    查看远程库的信息        $ git remote
    详细显示远程库的信息        $ git remote -v
Rebase
    把本地未push的分叉提交历史整理成直线
                    $ git rebase
标签管理
    创建新标签            $ git tag v1.0
    查看所有标签            $ git tag
    指定标签对应commit Id        $ git tag v0.9 f52c633
    查看标签信息            $ git show v0.9
    创建带有说明的标签,-a指定标签名,-m指定说明文字
                    $ git tag -a v0.1 -m "version 0.1 released" 1094adb
    删除标签            $ git tag -d v0.1
    推送标签到远程            $ git push origin v1.0
    推送全部尚未推送到远程的本地标签$ git push origin --tags

       删除远程标签
    1.先删除本地标签            $ git tag -d v0.9
    2.从远程删除            $ git push origin :refs/tags/v0.9

模拟多人协作

       另一台电脑抓取分支
    1.克隆                $ git clone git@github.com:monicaaish/learngit.git
    2.需要在dev分支开发,必须创建远程origin的dev分支到本地,创建本地dev分支
                    $ git checkout -b dev origin/dev
    3.修改文件 添加提交        $ git add env.txt
    4.提交文件            $ git commit -m "add env"
    5.push到远程            $ git push origin dev

       本地修改相同文件
    1.修改文件 添加提交        $ git add env.txt
    2.提交文件            $ git commit -m "add new env"
    3.push到远程            $ git push origin dev
    这个时候会报错:    推送失败,因为另一台电脑的最新提交和你试图推送的提交有冲突
        To github.com:michaelliao/learngit.git
         ! [rejected]        dev -> dev (non-fast-forward)
        error: failed to push some refs to 'git@github.com:michaelliao/learngit.git'
        hint: Updates were rejected because the tip of your current branch is behind
        hint: its remote counterpart. Integrate the remote changes (e.g.
        hint: 'git pull ...') before pushing again.
        hint: See the 'Note about fast-forwards' in 'git push --help' for details.

       解决办法:先用git pull把最新的提交从origin/dev抓下来,然后,在本地合并,解决冲突,再推送
    1.从origin/dev抓取最新提交    $ git pull    (这时会报错,原因是没有指定本地dev分支与远程origin/dev分支的链接)
    2.设置dev和origin/dev的链接    $ git br --set-upstream-to=origin/dev dev
    3.从origin/dev抓取最新提交    $ git pull
    4.git pull成功,但是合并有冲突,需要手动解决,解决的方法和分支管理中的解决冲突完全一样。解决后,提交
                    $ git commit -m "fix env conflict"
    5.push到远程            $ git push origin dev
    
    多人协作的工作模式通常是这样:
        首先,可以试图用git push origin <branch-name>推送自己的修改;
        如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
        如果合并有冲突,则解决冲突,并在本地提交;
        没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!
        如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,
           用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。


linux命令

查看当前目录列表            $ ll
创建文件夹                $ mkdir learngit
打开目录                $ cd learngit
显示当前目录                $ pwd
创建或打开文件,编辑文件        $ vim readme.txt
    *在文件中编辑文本,按下 i 进入编辑,此时在窗体最底部会出现 -- 插入 --
    *输入完毕后,完成输入,退出输入,按 ESC ,这个时候会发现底部的 -- 插入 --没有了
    *保存编辑的文件,并且退出vim编辑 输入 :wq 命令,按回车键
    *没有进行修改,不需要保存直接退出 ,输入 :q 命令
        保存,不退出vi ---------------------------------------------  :w
        强制保存,不退出vi ---------------------------------------  :w!
        将修改另外保存到file中,但不退出vi(不常用)------  :w file
        保存,并退出vi ---------------------------------------------  :wq  或  :x
        强制保存,并退出vi ---------------------------------------  :wq!
        不保存,并退出vi ------------------------------------------  :q
        不保存,并强制退出vi ------------------------------------  :q!
        放弃所有修改,从上次保存文件开始再编辑 -----------  :e!
查看文件的内容                $ cat readme.txt
删除文件                $ rm test.txt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值