• Git学习笔记


    Git命令图解

    • Workspace:工作区
    • Index / Stage:暂存区
    • Repository:仓库区(或本地仓库)
    • Remote:远程仓库

    创建版本库

    在当前目录新建一个Git代码库

    git init

    新建一个目录,将其初始化为Git代码库

    git init [project-name]

    下载一个项目和它的整个代码历史

    git clone [url]

    配置

    显示当前Git配置

    git config --lits

    编辑Git配置文件

    git config -e --gloal

    设置提交代码时的用户信息

    git config --global user.email "youremail@example.com"
    git config --global user.name "yourName" 
    

    增加删除文件到暂存区

    所有的的版本控制系统只能追踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等。版本控制系统可以告诉你每次的改动,比如在第五行加了一个单词"Linux",在第八行删除了"Windows"等等。而图片,视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就只知道图片从100k改成了120k。

    其中Microsoft的Word格式是二进制格式,因此控制版本系统无法跟踪Word文档的改动。

    添加指定文件到暂存区

    git add [file1] [file2]

    添加指定目录到暂存区,包括子目录

    git add [dir]

    添加当前目录所有文件到暂存区

    git add .

    对于同一个文件的多次变化,逐次确认提交

    git add -p

    删除工作区文件,并将这次删除放入暂存区

    git rm [file1] [file2]

    改名文件,并且将这个改名放入暂存区

    git mv [file-original] [file-renamed]

    管理撤销修改

    丢弃工作区修改

    git checkout -- [file]

    删除添加到暂存区中的某个文件

    git reset HEAD [file]

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

    git diff HEAD -- [file]

    $ git diff HEAD -- README.txt
    diff --git a/README.txt b/README.txt
    index ab76794..0f8a8e9 100644
    --- a/README.txt
    +++ b/README.txt
    @@ -1,3 +1,4 @@
     this is an test
     test enter
     test again
    +test diff
    

    提交代码

    提交暂存区到仓库区

    git commit -m "message"

    提交暂存区指定文件

    git commit [file1] [file2] -m "message"

    提交工作区自上次commit后的所有变化到仓库

    git commit -a

    提交时显示所有diff信息

    git commit -v

    使用一次新的commit替代上一层commit提交信息

    git commit --amend -m "message"

    重做上一次commit,并包括指定文件的新变化

    git commit --amend [file1] [file2]

    时光机穿梭

    查看git log

    git log
    如下:

    commit 03d99a41e6df6d5c9f178469d2486d3f18b31676
    Author: rasang <test@qq.com>
    Date:   Sun Aug 25 17:52:59 2019 +0800
    
        test3
    
    commit b099664a069db05bbde874fc5bae325183885104
    Author: rasang <test@qq.com>
    Date:   Sun Aug 25 17:50:10 2019 +0800
    
        test2
    
    commit 01197a271ada3f03b80493446a6353e410f9a621
    Author: rasang <test@qq.com>
    Date:   Sun Aug 25 17:48:23 2019 +0800
    
        test1
    

    commit后面跟着的就是commit-id,使用如下命令回退版本
    git reset --hard [commit-id]
    也可以使用如下命令返回上一个版本
    git reset HEAD^
    HEAD^^则是上上个版本,回退前100个版本的指令为
    git reset HEAD~100
    回退版本后,晚于该版本的log会消失,想要回到原来的版本,需要使用git reflog查看穿梭的记录

    $ git reflog
    03d99a4 (HEAD -> master) HEAD@{0}: reset: moving to HEAD^
    4e75dd6 HEAD@{1}: commit: upper
    03d99a4 (HEAD -> master) HEAD@{2}: reset: moving to 03d99a41e6df6
    df136f4 HEAD@{3}: reset: moving to df136f
    df136f4 HEAD@{4}: reset: moving to df136f499b87ac6d6b2
    df136f4 HEAD@{5}: commit: delete
    113dcfe HEAD@{6}: commit: test4
    03d99a4 (HEAD -> master) HEAD@{7}: commit: test3
    b099664 HEAD@{8}: commit: test2
    01197a2 HEAD@{9}: commit (initial): test1
    

    远程仓库

    添加SSH key。

    如果之前没有创建过,可输入:
    ssh-keygen -t rsa -C "youremail@example.com"
    一路回车,可在用户主目录下生成.ssh目录,其中id_rsa为私钥,id_rsa.pub是公钥。然后就可以进入代码托管平台将公钥里的内容添加到账号的公钥里面了

    添加远程仓库

    在代码托管平台上新建一个仓库,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
    关联远程仓库:
    git remote add origin [git_add]
    关联后使用git push -u origin master第一次推送master分支所有内容,此后则用git push origin master推送最新更新

    从远程库克隆

    首先要知道仓库地址,一般都是在代码页就有了,然后使用指令git clone [git_add]就好了

    分支管理

    创建与合并分支

    创建并切换分支

    git branch -p [brach_name]

    查看当前分支

    git branch 当前分支前面会标一个*号

    切换分支

    git checkout [branch_name]

    分支合并

    git merge dev将dev分支合并到当前分支

    删除分支

    git branch -d dev

    查看分支合并图

    git log --graph

  • 相关阅读:
    Windows平台下MySQL常用操作与命令
    button和sumbit提交表单的区别
    AjaxPro.Net的使用
    小写金额转换成大写
    sqlserver自动定时备份数据库并按日期命名
    dw文档的当前编码不能正确保存文档所有字符.....
    windows 2003 ii6 上运行asp出现http500错误
    图片提示预览效果
    一个网站优化seo的年终工作总结
    很COOL的相册
  • 原文地址:https://www.cnblogs.com/Rasang/p/11409094.html
Copyright © 2020-2023  润新知