zoukankan      html  css  js  c++  java
  • git指南

    烦人的git

    首先我们下载一个git

    https://git-scm.com/到这里下

    首先我们要知道什么是版本

    版本就好比,我们画一个小人,当我们画好第一个版本的时候,我们进行了一次保存,

    我们给他发送给我们的老板,第一次发过去后我们老板说不好看,在加上一朵花会好看一些

    这是我们就会保存原来的版本

    起名叫(画小人第一版)

    当我们画好了一朵花 给老板时候,老板说在手里在放个苹果吧,这时我们需要保存

    (画小人在加朵花)

    然后画好了苹果再发给老板,老板说都不要了,给小人上加一个帽子吧

    然后我们又画了一个帽子,你会发现好多代码啊

    好多重复的啊这可如何是好啊,如果我们后期在弄出个别的怎么办啊。

    这就是我说的版本,和版本的问题

    多而杂,乱

    git我们可以理解为一个版本的管理工具

    首先我们进行一个创建

    进入一个我们想要做git的文件夹内,

     git init 

    这个文件夹下会多一个隐藏文件.git

    今日内容概要:

    1. Django内容补充

    - FBV&CBV

    - 中间件

    2. Git使用

    - 什么是GIT,

    - 张开的故事:资源共享网站

    - 小弟弟系列

    - 小芳系列

    - 第一个版本:进入程序目录:

    git init           初始化

    git add .          当前目录中所有文件添加到【某个地方】

    git commit -m '描述信息' 第一版本git已经生成

    git status

    - 新功能: 李浩专区

    开发到了一半,紧急修复线上BUG

    git stash

    解决bug

    git add .

    git commit -m '修复bug完毕'

                         git stash pop

    可能出现冲突,出现之后不要着急,手动解决冲突

    Auto-merging templates/index.html

    CONFLICT (content): Merge conflict in templates/index.html

    开发功能完毕

                         git add .

    git commit -m '解决冲突后,继续开发后续功能'

                         PS:

    git stash           将当前工作区所有修改过的内容存储到“某个地方”,将工作区还原到当前版本未修改过的状态

    git stash pop       将第一个记录从“某个地方”重新拿到工作区(可能有冲突)

    git stash list      查看“某个地方”存储的所有记录

    git stash clear     清空“某个地方”

                                git stash apply     编号, 将指定编号记录从“某个地方”重新拿到工作区(可能有冲突)

    git stash drop      编号,删除指定编号的记录

    - 疑问:

                         git log

    git reset --hard  3ee80517425148b9d87591c9bd29a77e3db89ff2

    git reflog

    wang@DESKTOP-L6U2NU7 MINGW32 ~/PycharmProjects/teacheryuan/BlogYuan

    $ git init 第一次创建.git文件夹

    Initialized empty Git repository in C:/Users/wang/PycharmProjects/teacheryuan/BlogYuan/.git/

    wang@DESKTOP-L6U2NU7 MINGW32 ~/PycharmProjects/teacheryuan/BlogYuan (master)

    $ git status 查看git的版本

    On branch master

    Initial commit

    Untracked files:

      (use "git add <file>..." to include in what will be committed)

            .idea/

            BlogYuan/

            blog/

            db.sqlite3

            egon.jpg

            manage.py

            templates/

    nothing added to commit but untracked files present (use "git add" to track)

    wang@DESKTOP-L6U2NU7 MINGW32 ~/PycharmProjects/teacheryuan/BlogYuan (master)

    $ git add . 将代码保存到git文件夹下临时保存

    The file will have its original line endings in your working directory.

    warning: LF will be replaced by CRLF in blog/static/kindeditor-4.1.10/kindeditor-min.js.

    The file will have its original line endings in your working directory.

    wang@DESKTOP-L6U2NU7 MINGW32 ~/PycharmProjects/teacheryuan/BlogYuan (master)

    $ git commit -m '第一次提交'   将临时保存的文件加上描述信息正式保存到版本库里

    [master (root-commit) 8aa00d8] 第一次提交

     345 files changed, 78179 insertions(+)

     create mode 100644 .idea/BlogYuan.iml

     create mode 100644 .idea/dataSources.ids

     create mode 100644 .idea/dataSources.local.xml

     create mode 100644 blog/static/kindeditor-4.1.10/examples/qqstyle.html

     create mode 100644 templates/reg.html

     create mode 100644 templates/showContent.html

    wang@DESKTOP-L6U2NU7 MINGW32 ~/PycharmProjects/teacheryuan/BlogYuan (master)

    $ ls 查看当前文件文件夹

    blog/  BlogYuan/  db.sqlite3  egon.jpg  manage.py*  templates/

    wang@DESKTOP-L6U2NU7 MINGW32 ~/PycharmProjects/teacheryuan/BlogYuan (master)

    $ git status

    On branch master

    nothing to commit, working tree clean

    wang@DESKTOP-L6U2NU7 MINGW32 ~/PycharmProjects/teacheryuan/BlogYuan (master)

    $ git log 查看保存过的版本和保存描述信息

    commit 8aa00d8207656e8ee8abd3c36804a6d6d889781c  唯一的版本号

    Author: wang935415150 <935415150@qq.com>

    Date:   Mon Sep 18 14:38:32 2017 +0800

        第一次提交

    我们修改了一些文件的代码后

    wang@DESKTOP-L6U2NU7 MINGW32 ~/PycharmProjects/teacheryuan/BlogYuan (master)

    $ git status 再次查看

    On branch master

    Changes not staged for commit:

      (use "git add <file>..." to update what will be committed)

      (use "git checkout -- <file>..." to discard changes in working directory)

            modified:   manage.py    自动检测到修改的文件并且为红色

    no changes added to commit (use "git add" and/or "git commit -a")

    $ git add * 将manage.py更新到临时库中 *代表全部更新 加上文件名字代表只更新哪一个文件

    wang@DESKTOP-L6U2NU7 MINGW32 ~/PycharmProjects/teacheryuan/BlogYuan (master)

    $ git commit -m "加了个time模块" 降临时更新到库中

    [master 78cd09d] 加了个time模块

     1 file changed, 1 insertion(+)

    wang@DESKTOP-L6U2NU7 MINGW32 ~/PycharmProjects/teacheryuan/BlogYuan (master)

    $ git status

    On branch master

    nothing to commit, working tree clean

    wang@DESKTOP-L6U2NU7 MINGW32 ~/PycharmProjects/teacheryuan/BlogYuan (master)

    $ git log

    commit 78cd09dce1f838b30302d1b74cbfd02d70a3f7fb

    Author: wang935415150 <935415150@qq.com>

    Date:   Mon Sep 18 15:24:20 2017 +0800

        加了个time模块

    commit 8aa00d8207656e8ee8abd3c36804a6d6d889781c

    Author: wang935415150 <935415150@qq.com>

    Date:   Mon Sep 18 14:38:32 2017 +0800

        第一次提交

    wang@DESKTOP-L6U2NU7 MINGW32 ~/PycharmProjects/teacheryuan/BlogYuan (master)

    $ git reset --hard 8aa00d8207656e8ee8abd3c36804a6d6d889781c  版本回滚到想要的版本中 后面的一长串代表唯一版本号

    HEAD is now at 8aa00d8 第一次提交

    代码开发了一半,上线功能有bug的时候

    开发一半的代码我们要做一个暂存

    git stash 进行暂存

    git stash pop 我的bug改完了也提交分支了,然后我们在取回来

    会做一个新的合并

    如果修改了一个地方不能自动合并因为有可能修改一个地方出现冲突

    提示你templates/index下进行修复

    我们有1,2,3,4版本

    如果我们直接回到2版本

    那么我们3和4就找不到了

    这则么办呢

    git reflog就可以查看到3和4和所有的版本

    我们

    这时候我们就可以回到想要的版本

    git reset --hard 版本号

    进阶版本

    1. Git

    工作区                           版本库                         远程仓库

    未修改 已修改【红色】         暂存【绿色】  分支

             

    上节回顾Git:【master】

    git status

                    

    git add 文件名

    git add .

                    

    git commit -m 'xxxxx'

                    

    git log

    git reflog

                    

    git reset --hard xxxxdfasdf

                     git stash

    git stash pop

    分支:

    提交master分支已经修改的问题,或者回到原始状态

    git branch dev

    git checkout dev

    Dev

    # 开发一半...

                                # git branch

    git add .

    git commit -m 'xasdf'

    # 继续开发

    git add .

    git commit -m 'xasdf'

    Master:

                                git checkout master

    git merge dev

    通过Bug分支紧急修复Bug

    GitHub(代码托管)

    GitLab(公司自己搭建代码托管)

    公司:

    创建远程仓库

    写readme

    git add .

    git commit ...

    git push origin master

    下班

    家:

    git clone https://github.com/WuPeiqi/s5day83.git

    git add .

    git commit ...

    git push origin master

    到公司:

                         git pull origin master

    # 继续开发,开发到一半,留点代码回家做

    git add .

    git commit -m 'xxx'

    # git push github master

    家:

    根据自己的记忆继续写代码:

    在家完成后续功能

    git add .

    git commit -m 'xxx'

    git push origin master

    公司:

    git pull github master

    git fetch github master

    git merge github/master    <=> git rebase github/master

    解决冲突

    # 继续写代码

    git add .

    git commit -m 'xxx'

    git push github master

    协同开发:【点点点】

    分支:

                         master

    review

                         dev

    协同:

    3个人:dev

    组长:代码review,合并完成后,

    你有没有给不牛逼的代码修改过Bug?【点点点】

    - 么有

    常用点点点操作:

    - 合作开发

    - 项目:添加合作者

    - 组织:创建人,开发项目

    - Fork

    - pull request

    头疼问题:连接远程仓库

    Https

    - 手动输入用户名密码

    SSH

    - 生成一对秘钥 cd ~/.ssh/

    - 公钥拷贝到GitHub

    - git add remote origin git@github.com:WuPeiqi/Tyrion.git

    git pull origin master

    git push oriing master

           忽略文件 :   .gitignore

    创建这个目录需要在.git同级目录下进行制作

    命令是linux下的命令  vim .gitignore

    然后在里面添加下面这样子的或者正则表达式就可以

    a.* 代表着含有a的文件

    test/[abc].py代表 test文件夹下a.py   b.py  c.py 都会停止

    test/* 代表test下的所有文件都不要了

    !test/a.py  代表除了test/a.py 其他都不要检测了

    .idea/*  这是pycharm自带的功能建议不要了

    *.pyc 这是python的编译文件建议不要了

    *.excel  这是文本文件如果重要就可以不传了

    PS: git命令只能在: .git 文件的路径

  • 相关阅读:
    奥运圣火在家乡传递
    Please stop reinventing the wheel (请不要重复发明轮子)
    使用IDispatch::Invoke函数在C++中调用C#实现的托管类库方法
    To invoke and to begin invoke, that is a question.
    XML和JSON(JavaScript Object Notation)
    Cloud Computing Is a Big Whiteboard
    TRIE Data Structure
    ASP.NET AJAX UpdatePanel 控件实现剖析
    分布式计算、网格计算和云计算
    系统架构设计师考试大纲(2009版)
  • 原文地址:https://www.cnblogs.com/935415150wang/p/7554862.html
Copyright © 2011-2022 走看看