美文网首页
Git基本操作。一篇解决

Git基本操作。一篇解决

作者: 阿登20 | 来源:发表于2020-11-20 16:37 被阅读0次

    Git

    git的工作流程

    image.png image.png

    基本流程

    image.png

    git pull

    image.png

    一、Git的安装

    https://git-scm.com/download/win 下载地址

    image.png

    GITHUB下载比较慢,我们可以去国内镜像下载 https://npm.taobao.org/mirrors/git-for-windows/

    下载之后一直下一步安装完即可。

    安装完成后,邮件会多出来2个git开头的选项

    image.png

    双击GIt Bash Here. 在这种命令窗口下可以使用linux命名。

    出现如下画面就可以输入git命令了

    image.png

    命令

    1. git init

    git init xxx初始化 新建立一个代码仓库

    image.png

    然后adeng文件夹下面会多出来一个.get的文件夹

    image.png

    .git 文件夹下面有如下文件 .git下面的文件不要删,删了就不会被管理了

    image.png

    2. git add .

    git add a.txt将a.txt文件提交到管理区。git status查看状态 文件是绿色表示在暂存区。红色表示未被管理。如下图:

    image.png

    3. git commit -m "本次提交说明"

    git commit 提交到版本库

    image.png

    第一次使用git commit -m "xxx"会出现如下画面

    git config --global user.name "这里是你的github用户名"

    git config --global user.email xxx@xxx.com(你的邮箱)

    image.png

    怎么解决呢:

    一次输入两行命名就行。

    再次输入git commit -m "新增修改a文件数据" 就没有报错了

    image.png

    会在用户目录下有个.gitconfig文件,内容就是上面敲的2条命令中的 邮箱和用户名

    image.png

    4. git checkout . 当前路径下的文件回滚到提交前版本

    上面我修改了a.txt文件的数据。

    image.png

    之前是没有数据的。现在a.txt已经在版本库里面了。这时候执行git checkout . 就会回到提交前。

    5.git log 查看版本管理日志

    • git reflog 显示当前分支最近提交
    image.png

    6. git status 查看状态

    7.git reset --hard 版本

    版本号就是commit后面那一串字符,可以不用写全。如下


    image.png

    8. 如何忽略文件

    • 新建的空文件夹,不会被管理。里面只要加了东西,git status就会红色
    • 指定某些文件或者文件夹不被git管理
    • 在项目根路径,跟.git文件夹一个路径,新建.gitignore文件
    • # 号 是注释,没有用
    • 文件夹名字,表示 此文件夹不被管理
    • 文件夹摸个文件想忽略 就写 想忽略的文件路径,支持通配符*
    • /dist表示根路径下的dist文件夹,不被管理
    • *.py 表示后缀为py文件的不被管理
    • *.log* 带有.log的任意文件不被管理
    • !a.txt 除了a.txt不被管理

    注意新建.gitignore时候后面多加个. 不然windows上面会报错

    image.png

    .gitignore 创建好了如上图。

    image.png
    • 如下所看到git status c文件有东西的情况也没变红。.gitignore这个文件我们还是要管理的。
    image.png

    想忽略文件夹下的某个文件。直接写上文件的路径在.gitignore里面

    image.png image.png

    py结尾的文件没有提交到暂存区,其他都提交到了暂存区。如下图:

    image.png

    一般.gitignore如下图那么去写

    image.png

    分支操作

    image.png
    1. git branch 查看所有分支,如果是绿的,表示在当前分支上。
    image.png
    1. git branch 分支名 创建分支
    2. git checkout 分支名 切换
    image.png
    1. git branch -d 分支名 删除分支名

    注意如果在分支上,是不能删除的.需要切换到master上在删除

    image.png
    1. git checkout -b 分支名 创建并切换
    2. git branch -a 查看远程分支和本地分支
    3. git branch -r 查看远程分支
    4. git merge 分支名 把dev分支合并到master分支:切换到master分支,执行合并dev分支的命令

    分支合并注意点:

    master: 主分支,主要用来版本发布。
    develop:日常开发分支,该分支正常保存了开发的最新代码。
    feature:具体的功能开发分支,只与 develop 分支交互。
    release:release 分支可以认为是 master 分支的未测试版。比如说某一期的功能全部开发完成,那么就将 develop 分支合并到 release 分支,测试没有问题并且到了发布日期就合并到 master 分支,进行发布。
    hotfix:线上 bug 修复分支

    GITEE 账号注册

    https://gitee.com 注册就不说了

    配置SSH公钥

    登录gitee--个人头像--设置--ssh公钥

    image.png

    如何生成公钥步骤:

    1. 在个人用户目录【C:\Users\xxx】下简历一个.ssh的目录。创建目录需要输入.ssh.创立。

    2. 右键git bash here

    3. 输入 ssh-keygen -t rsa -C "xxxxx@xxxxx.com"生成公钥和私钥。但是我们只要公钥

    image.png
    1. 复制.ssh文件夹下面id_rsa.pub文件的公钥粘贴到gitee上面ssh文本框里
    2. 添加后,在终端(Terminal)中输入
      ssh -T git@gitee.com

    详细设置ssh公钥参考地址:https://gitee.com/help/articles/4181#article-header0

    码云创建一个自己的仓库

    看图跟着走吧,一目了然

    image.png
    image.png

    这样gitee仓库就生成好了如下图

    image.png

    pycharm继承GIT

    pycharm新建一个项目。

    git clone先拉取gitee上面创建的仓库地址。

    将gitee仓库的所有文件复制到新建的项目里。

    image.png

    重启pycharm会发现多出来如下git在图标

    image.png
    • 红色1.py 表示未被管理的状态

    pycharm如何提交(相当于 git commit -m )

    image.png image.png

    提交之后:会图下图发现 没有任何红色了

    image.png

    pycharm终端也可以输入 git命令进行提交 效果一样

    pycharm git push到远程仓库

    image.png

    1.py 和 2.py成功推送到了远程仓库

    image.png

    init创建的仓库添加到gitee

    使用url地址添加远程库 git remote add 远程仓库名 url 添加一个远程仓库

    git remote add 远程仓库名 https://gitee.com/name/object_name.git

    • git remote 查看关联的远程仓库的名称
    • 查看远程库信息:git remote -v
    • 移除和远程库的连接:git remote remove orgin

    push推送到远程仓库

    • git push -u origin master 将本地分支的更新全部推送到远程仓库master分支。
    • git push origin -d <branchname> 删除远程branchname分支
    • git push --tags 推送所有标签

    pulss 拉取远程仓库代码

    • git pull 拉取远程仓库所有分支更新并合并到本地分支。

    • git pull origin master 将远程master分支合并到当前本地分支

    • git pull origin master:master 将远程master分支合并到当前本地master分支,冒号后面表示本地分支

    • git fetch --all 拉取所有远端的最新代码

    • git fetch origin master 拉取远程最新master分支代码

    免密登录

    • git push -u origin master 这条命令老师要输入密码 如何免密?

    1 . cd到home目录 cd ~
    2.创建一个文件夹 touch .git-credentials
    3.vi .git-credentials
    输入 http://{用户名}:{密码}@gitee.com github:github.com

    1. .gitconfig下面会多出来
      [credential]
      helper = store
    image.png

    git bash 过程

    image.png

    一般的流程

    git全局设置

    git config --global user.name "这里是你的github用户名"   
    
    git config --global user.email "17740808@qq.com"
    
    

    创建远程仓库

    mkdir my_python
    cd my_python
    git init
    touch README.MD
    git status
    git add .
    git commit -m "第一次提交" 
    git remote add origin https://gitee.com/name/object_name.git
    git push -u origin master
    git pull 
    

    创建dev分支,并且切换到dev.

    image-20211103135412185

    本地分支有master和dev 远程这时候只有dev

    image-20211103135642276

    这时候把本地dev分支推送到远程dev分支。git push -u origin dev

    image-20211103141047679 image-20211103141242432

    删除远程dev 分支 git push -u origin -d dev

    image-20211103141556991 image-20211103141624927

    git push 默认是推送到远程仓库 一摸一样的分支上面

    image-20211103141944380

    而远程仓库有master dev两个分支,你拉取代码之后本地只有一个master,所以本地git push -u origin 指明远程仓库的分支名 否则会推送到和本地一抹一样的分支名上面。

    分支合并

    比如把dev分支合并到master分支。先git checkout master 然后在执行合并到master分支,get merge dev

    image-20211103143928932

    pycharm合并,也是要先切换到master 然后如图操作

    image-20211103153014614

    解决版本冲突

    先去gitee上面拉取一个仓库的代码

    如下图从python_sduty.仓库拉取2次。

    第一次放在I:\python20\softwaredate\python_sduty

    第一次放在I:\python20\softwaredate\python_sduty1

    git@gitee.com:adeng520/python_sduty.git

    I:\python20\softwaredate\python_sduty1

    image-20211103114854732 image-20211103115051196

    如图A B 两个开发,刚开始一模一样,都同时开发这个py文件

    image-20211103155230062

    B开发 添加了c=3 并且提交了代码

    image-20211103155114796

    A开发 添加了一行 d=5的代码 如图

    image-20211103155445258

    A开发这时候,先pull一下代码 结果发现冲突了

    image-20211103155936164 image-20211103160029679

    解决完冲突A开发 继续提交了代码到远程仓库

    image-20211103160306570

    最后push发现提交成功了,表示这次冲突完美解决

    相关文章

      网友评论

          本文标题:Git基本操作。一篇解决

          本文链接:https://www.haomeiwen.com/subject/fwidiktx.html