zoukankan      html  css  js  c++  java
  • Git教程

        该笔记事笔者学习廖雪峰Git教程的笔记,如果想详细了解Git请移步廖雪峰官网。

        廖雪峰官网地址 : https://www.liaoxuefeng.com/

        廖雪峰Git教程 : https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

    1. 切换分支
    git checkout fenzhi

    2. 提交代码
    git stash
    git pull
    git stash pop
    git add .
    git commit -am "注释"
    git push
    git push --set-upstream origin origin/dev-strategyg

    3. 更新远程分支
    git fetch



    一、 下载Git
    Git官网地址 : https://git-scm.com/

    二、 安装Git

    三、 创建版本库
    1. 装个地方常见一个目录
    mkdir repository
    2. 进入新建的目录
    cd repository
    3. 执行 git init 命令创建版本库
    注意 : 版本库自动生成的 .git 文件不要随便修改
    4. 我创建时执行的命令
    mkdir gitrepository
    cd gitrepository
    pwd //查看文件目录
    git init

    四、 创建文件(夹)并添加到版本库
    1. 首先创建一个文件readme.txt(文件夹也可以)
    2. 添加到版本库的命令分两个
    git add readme.txt
    git commit -m "说明"

    五、 查看仓库当前状态
    git status

    六、 查看文件readme.txt的变更
    git diff readme.txt

    七、 查看提交记录
    git log
    或者 git log --pretty=oneline

    八、 版本回退
    Git 用 HEAD 表示当前版本, 上一版本用 HEAD^ 表示, 上上个版本用 HEAD^^ 表示,以此类推
    但是 上一百个版本写一百个^太麻烦,所以回退上100个版本可以使用 HEAD~100
    回退版本的命令如下
    git reset --hard HEAD^

    九、 恢复到版本回退之前
    恢复到之前需要找到commit id
    可以使用命令
    git reflog
    找到之前的commit id,使用下面的命令
    git reset --hard commit-id(只写前几位就行了,不必写全)

    查看文件内容命令 : cat readme.txt(文件名字)

    十、 撤销修改
    撤销修改有两种
    1. 直接撤销工作区的修改
    git checkout -- readme.txt(文件名)
    2. 撤销加到暂存区的修改
    git reset HEAD readme.txt(文件名)
    还有一种修改是提交到版本库了,就需要回退版本了

    十一、 删除文件
    切记删除文件也是一中修改
    有两种方式提交修改
    1. 删除文件 | git add 文件名 | git commit -m "注释"
    2. 删除文件 | git rm 文件名 | git commit -m "注释"

    十二、 Git远程仓库
    Git是一个分布式的版本控制系统,所以不同于SVN,Git不需要中央仓库(实际使用中会用一台服务器作为中央仓库,但是它的地位与其他没有仓库没有区别)。
    如果要访问远程仓库,需要先在自己的Git生成密钥。
    命令如下:
    ssh-keygen -t rsa -C "youremail@example.com" (引号中的为加密内容,根据自己的情况而定)
    然后进入Git目录下的 .shh 文件夹,.ssh里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对。id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
    链接远程仓库,只需要将自己的公钥(id_rsa.pub文件的内容)加入对方的SSH Key即可。

    十三、 链接一个Git远程仓库
    以 Github 为远程仓库为例
    1. 将 id_rsa.pub中公钥添加到GitHub 的SHH Key中。
    2. 在Github中创建一个仓库 mytest
    3. 将本地仓库和Github上的仓库关联起来
    git remote add origin git@github.com:aston2016/mytest.git
    4. 将本地仓库master分支推送到Github上
    git push -u origin master
    5. 现在本地仓库和Github仓库就关联起来了,以后再向Github推送修改可使用下面命令
    git push origin master
    至此就连接了一个Git远程仓库,就拥有了一个分布式版本控制系统。

    十四、 克隆远程仓库
    克隆远程仓库需要知道远程仓库的地址,然后使用 git clone 命令。
    假设Github上有一个仓库git@github.com:aston2016/mytest.git,则克隆该仓库命令如下:
    git clone git@github.com:aston2016/mytest.git

    十五、 Git分支管理
    1. 创建分支
    git checkout -b 新分支名称
    或者
    git branch 新分支名称
    git checkout 新分支名称
    2. 合并分支
    git merge 合并的分支名称
    3. 删除分支
    git branch -d 分支名称
    4. 总结
    查看分支:git branch
    创建分支:git branch <name>
    切换分支:git checkout <name>
    创建+切换分支:git checkout -b <name>
    合并某分支到当前分支:git merge <name>
    删除分支:git branch -d <name>
    5. 查看远程分支
    git branch -a
    6. 跟新远程分支到本地
    git fetch //不会自动合并
    7. 删除远程分支
    git branch -r -d origin/branch-name
    git push origin :branch-name

    十六、 冲突
    Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容

    十七、 查看分支合并图命令
    git log --graph
    或者 git log --graph --pretty=oneline --abbrev-commit

    十八、 分支管理策略
    上面的合并分支都是快速合并模式(Fast forward),这种合并模式一旦删除分支,分支的信息就会丢失。
    所以,优秀的Git可以禁止快速合并模式,禁止之后在合并时会生成一个新的commit,这样,从分支历史上就可以看出分支信息
    禁止快速合并模式的命令如下:
    git merge --no-ff -m "注释信息" 分支名称
    1. 分支策略
    一般情况下用到的分支策略就是保持master的稳定,即master只用来发布最新版本,不在master分支上干活。创建分支dev,只在dev上干活。

    十九、 保存工作现场
    工作中我们总会遇到这样的情况,在一个分支的活还没有干完,但是遇到一些紧急情况需要切换到其他分支干活。Git提供了stash功能可以用来保存工作现场。
    相关的命令如下:
    保存工作现场 : git stash
    查看保存的现场列表 : git stash list
    恢复现场 : git stash apply
    删除某条现场 : git stash drop
    恢复现场并删除 : git stash pop
    恢复指定的现场 : git stash apply stash@{0}

    二十、 强行删除分支
    git branch -D 分支名称
    注意D是大写

    二十一、 多人合作
    1. 查看远程分支,远程仓库默认名称 origin
    git remote
    git remote -v //详细信息
    2. 推送分支
    git push origin 远程分支名称
    3. 抓取分支
    git pull
    git checkout -b dev origin/dev
    创建本地分支dev,并于远程分支dev关联,并切换到本地分支dev
    4. 多人合作
    多人协作的工作模式通常是这样:
    1) 首先,可以试图用git push origin branch-name推送自己的修改;
    2) 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
    3) 如果合并有冲突,则解决冲突,并在本地提交;
    4) 没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
    5) 如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name。
    5. 总结
    查看远程库信息,使用git remote -v;
    本地新建的分支如果不推送到远程,对其他人就是不可见的;
    从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;
    在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
    建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;
    从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

    二十二、 标签管理
    标签其实也是一个指针,指向一个commit
    1. 创建标签
    git tag 标签名称 //当前版本
    git tag 标签名称 commitId //给指定的commit id打标签
    2. 查看标签
    git tag
    3. 查看某个标签的信息
    git show 标签名称
    4. 总结
    命令git tag <name>用于新建一个标签,默认为HEAD,也可以指定一个commit id;
    git tag -a <tagname> -m "blablabla..."可以指定标签信息;
    git tag -s <tagname> -m "blablabla..."可以用PGP签名标签;
    命令git tag可以查看所有标签。
    5. 删除标签
    git tag -d 标签名称
    6. 推送本地标签到远程仓库
    git push origin 标签名称
    7. 一次性推送全部尚未推送到远程的本地标签
    git push origin --tags
    8. 删除远程标签
    1) 先从本地删除
    git tag -d 标签名称
    2) 从远程删除
    git push origin :refs/tags/v0.9
    9. 总结
    命令git push origin <tagname>可以推送一个本地标签;
    命令git push origin --tags可以推送全部未推送过的本地标签;
    命令git tag -d <tagname>可以删除一个本地标签;
    命令git push origin :refs/tags/<tagname>可以删除一个远程标签。

    二十三、 关联远程仓库
    1. 关联一个远程仓库
    git remote add origin git@gitee.com:liaoxuefeng/learngit.git
    2. 删除远程仓库
    git remote rm origin
    3. 关联多个远程仓库
    远程仓库的默认名字是origin,当本地关联多个需要指定远程仓库的名称
    git remote add gitee git@gitee.com:liaoxuefeng/learngit.git //gitee 为指定的远程仓库名称 git@gitee.com:liaoxuefeng/learngit.git 为远程仓库地址

    二十四、 自定义Git
    1. 忽略特殊文件
    有些文件我们会放到版本库里,但是我们并不想提交这些文件。这是可以编辑 .gitignore 文件忽略这些文件。
    如果你确实想添加该文件,可以用-f强制添加到Git:git add -f 文件名称
    用git check-ignore命令检查:git check-ignore -v 文件名称
    2. 配置别名
    这个功能非常好,可以把自己记不住或者容易记混的的单子或者太长的单词配置简写,这样即容易记忆,也显得个性。
    命令 : git config --global alias.别名 git命令
    例子 : git config --global alias.co checkout
    例子 : 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"
    3. 配置文件
    每个仓库的Git配置文件都放在.git/config文件
    别名就在[alias]后面,要删除别名,直接把对应的行删掉即可(所以配置别名也可以直接在文件里修改)
    而当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig中

  • 相关阅读:
    sql语句相关操作
    点菜系统数据库课程设计
    JDBC连接mysql编程
    JFrame画图基础和事件监听
    JFrame编程
    Java基础知识
    bzoj1047-理想的正方形(二维单调队列)
    Project Eular 233/ BZOJ 1041
    Open Train 10352
    Codeforces Round 492 (Div.1)
  • 原文地址:https://www.cnblogs.com/aston/p/7738407.html
Copyright © 2011-2022 走看看