zoukankan      html  css  js  c++  java
  • 廖雪峰的git学习笔记

    安装完后,每个机器都要自报家门

    Config--配置      global--全局参数

     

    配置全局用户名

    $git config --global user.name “Your Name”

    配置邮箱地址

    $git config --global user.email “email@example.com”

     

     

    创建版本库   

    Mkdir --建立一个新的子目录

    创建一个名为learngit的文件夹

    $mkdir learngit

    进入learngit文件夹里面

    $cd learngit

    显示当前目录

    $pwd

    把当前目录变成git可管理的仓库

    $git init

     

     

    把文件添加到仓库

    Commit  --...交托给

    把文件添加到缓存区

     

    $git add readme.txt   /   $git add .(添加全部已修改的文件)

    对本次提交做一个提交说明

    $git commit -m “xxxx”

     

     

    查看历史修改

    查看是否有已改动的文件

    $git status

    查看被修改的内容

    $git diff readme.txt    /   $git diff .

    查看版本控制系统的历史纪录

     

    $git log

    包括(commit版本号,提交的人,修改的日期与修改的那内容说明)

     

    $git log  --pretty=oneline

     

     

    回退版本:在git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个数不过来,可以写成HEAD~100

    回退到上一个版本

    $git reset  --hard HEAD^

    查看当前版本readme.txt的内容

    $cat readme.txt

     

     

     

    回退版本后,使用$git log查看,发现回退前的最新版本已经不见了。

    想要回到之前的最新版本,条件是,回退  时的命令行窗口还未被被关闭,然后使用

    $git reset  --hard 1234567

    1234567为之前最新的版本号的前7位,以查出来的为准

     

     

    如果之前的命令行窗口已经关闭了,又找不到新版本的commit id。那就用下面的命令

    $git reflog

     

     

    git提供一个命令git reflog来记录你的每一次命令

    可以看到之前最新的版本的那行append GPL   相对应的commit id

    现在,你依然可以回到最新版本了

     

     

    Branch  --分支    tracked  --跟踪

    Git checkout -- file命令中的“--”很重要,没有“--”就变成了“创建一个新分支”命令

    放弃当前工作区的修改

    $git status

    $git checkout  --  readme.txt

    把放在缓存区的文件撤销,放回到工作区

    $git reset HEAD readme.txt

     

     

     

    $git add test.txt

    $git commit -m “add test.txt”    ---(添加文件)

     

    $rm test.txt

    $git status     ---(提示你哪些文件被删除了)

    选择一

    $git rm text.txt

    $git commit -m “remove test.txt”   --把文件从版本库里删除掉

    选择二

    $git checkout -- test.txt   ---一键还原

     

     

    创建远程仓库

    (先有本地库,后有远程库)

    1,去github.com官网注册github账号,

    2,再电脑本机创建密钥,.ssh文件夹里有俩个文件,id_rsa和id_rsa.pub

    3,在github里找到设置ssh key的页面选项(版本不同位置不同),然后点“add SSh key” ,填上任意title,在key文本框里粘贴id_rsa.pub文件的内容,然后确定添加

    4,开始添加远程库,

      假设本机已有名为”abc”的项目,将”abc”设为本地仓库。

      在github里创建同名项目”abc”

      在本地仓库”abc”里右键打开base运行命令

     

     

    创建密钥

    $ssh-key -t rsa -C “youremail@example.com”

    密钥创建后就会告诉你密钥的路径。一般情况默认路径是

    C:UsersAdministrator

    把本地仓库与远程仓库相关联的内容推送到github仓库

    $git remote add origin git@github.com:youname/abc.git

    youname为你的github账号的用户名

    Git的远程库默认名为origin

    abc为你本地项目的项目名

    把本地库的所有内容推送到远程库上

    $git push -u origin master

    git push命令,实际上是把当前分支master推送到远程。由于远程是空,我们第一次推送master分支时,加上-u参数,在推送的同时,把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取就可以简化命令,之后的提交命令可以省略-u了,如下:

    $git push origin master

     

    (先有远程库,后有本地库)

    1,在github创建项目的时候同时创建readme.txt文件

    2,用命令克隆一个远程库到本地

     

    $git clone git@github.com:youname/bbb.git

    youname为你的github账号的用户名

    bbb为你在github上创建的项目名

    创建后会在本地生成同名文件夹

    $cd bbb

    $ls

    ls命令是查看当前文件夹里有什么文件

     

     

    (分支管理)

     

    创建分支

    $git checkout -b dev    

    Dev为分支名

    Git checkout 命令加上-b参数表示创建并切换,相当于以下两条命令

    $git branch dev      //创建分支

    $git checkout dev    //切换分支

    查看分支

    $git branch

    切换回主分支

    $git checkout master

    切换分支

    合并分支

    $git merge dev

    dev分支的工作成果合并到master分支上

    删除分支

    $git branch -d dev

    合并后,就可以删除dev分支了。

    删除后最好再查看一次当前分支

     

     

    解决冲突

    (假设分支”dev”与主分支”master”起冲突,现在我们在master分支上

    合并分支

    $git merge dev

     

    Git告诉我们,readme.txt文件存在冲突,必须手动解决

    查看被修改的内容

    $git status

     

    也提示有冲突

    查看文件内容

    $cat README.md

     

    我们可以看到起冲突的部分是哪里

     

    这个时候我们就要找到该文件,手动修改。修改后才能进行下一步操作

     

    提交并上传已修改好的文件

    $git add .

    $git commit -m “”

    查看分支合并的情况

    $git log --graph --pretty=oneline --abbrev-commit

     

    删除分支

    $git branch -d dev

     

     

    通常合并分支时,Git会用”Fast forward”模式,这种模式下,删除分支后会丢掉分支信息

    如果禁用”Fast forward”模式,Git就会在merge时生成一个新的commit,这样,就可以从分支的历史上查看分支信息

     

    分支管理策略(  --no-ff方式的merge      表示禁用“Fast forward”)

    $git checkout -b dev

    修改文件

    $git add .

    $git commit -m “”

    合并分支,注意--no-ff参数,表示禁用“Fast forward

    $git checkout master

    $git merge  --no-ff  -m “” dev

    查看分支历史

    $git log  --graph  --pretty=oneline --abbrev-commit

     

     

    分支策略

    Bug分支

    当你接到一个代号101bug的任务要立即处理时时,很自然的就想创建一个分支。但是假如你正在dev的分支上进行的工作还没提交。这怎么办?

    我们可以把当场工作现场“储存”起来,等恢复现场后继续工作

    $git status      //查看目前改动了什么

    $git stast       //存储工作现场

    $git status      //再查看一次   会发现工作区很干净

    $git checkout master   //回到主分支

    $git checkout -b issue-101     //创建新分支

    然后修复bug

    提交并推送

    $git add .

    $git commit -m “”

    修复完后回到主分支,合并并删除

    $git checkout master

    $git merge --no-ff -m “” issue-101

    $git branch -d issue-101

    删除后,回到dev分区

    $git checkout dev

    $git status    //发现工作区是干净的

    $git stash list    //查看工作现场存到哪了

    恢复现场并删除stash内容,回到现场工作

    $git stash pop

    $git stash list    //再查看一遍就看不到任何stash内容了

    如果想恢复制定stash的话,可以

    $git stash apply stash@{0}

     

     

     

    Feature分支

    在已有的项目里添加一个新功能的时候,最好新建一个feature分支。

    当要丢弃一个没有被合并过的分支时,可以使用以下命令强行删除

    $git branch -D feature-vulcan

     feature-vulcan为分支的分支名

     

     

     

    多人协作

    查看远程库信息

    $git remote    或  $git remote -v

    推送分支

    $git push origin master    //推送主分支

    $git push origin dev      //推送其他分支

    把最新的版本拉去下来

    $git pull

     

     

                                        项目常用git命令:

    $git status

    查询项目是否有改动

    $git add .

    将改动的地方添加道缓存区

    $git commit -am “xx”

    将缓存区的信息进行提交并注明提交信息

    $git fetch

    拉取项目最新版本

    $git rebase origin/developer

    将本地的改动提交到远程项目

    $git push origin developer

    把本地库的所有内容推送到远程库上

    $gitk

    查询

  • 相关阅读:
    时间选择框(可用于Form)
    点击复制指定内容
    ajax中多个模板之间套用ajax
    Java学习路径
    Windows平台安装Python
    Python语法-第2关
    Python语法-第1关
    Python语法-第0关
    图像识别
    wx:for用法
  • 原文地址:https://www.cnblogs.com/qqing/p/8482932.html
Copyright © 2011-2022 走看看