• Git的基本使用


    相关指令

    创建git仓库

    git init

    (base) [root@CentOS-wangml gitDir]# git init
    Initialized empty Git repository in /home/lighthouse/study/git/gitDir/.git/
    

    查看仓库状态

    git status

    (base) [root@CentOS-wangml gitDir]# git status
    # On branch master
    #
    # Initial commit
    #
    nothing to commit (create/copy files and use "git add" to track)
    

    将工作空间的修改添加到暂存区

    git add

    (base) [root@CentOS-wangml gitDir]# touch a.txt
    (base) [root@CentOS-wangml gitDir]# ls
    a.txt
    (base) [root@CentOS-wangml gitDir]# touch b.txt
    (base) [root@CentOS-wangml gitDir]# git add a.txt
    (base) [root@CentOS-wangml gitDir]# git status
    # On branch master
    #
    # Initial commit
    #
    # Changes to be committed:
    #   (use "git rm --cached <file>..." to unstage)
    #
    #	new file:   a.txt
    #
    # Untracked files:
    #   (use "git add <file>..." to include in what will be committed)
    #
    #	b.txt
    (base) [root@CentOS-wangml gitDir]# git add b.txt
    (base) [root@CentOS-wangml gitDir]# git status
    # On branch master
    #
    # Initial commit
    #
    # Changes to be committed:
    #   (use "git rm --cached <file>..." to unstage)
    #
    #	new file:   a.txt
    #	new file:   b.txt
    #
    

    将暂存区内容提交到版本库

    git commit -m '备注'

    (base) [root@CentOS-wangml gitDir]# git commit -m 'create a.txt b.txt'
    [master (root-commit) 800f2d8] create a.txt b.txt
     2 files changed, 0 insertions(+), 0 deletions(-)
     create mode 100644 a.txt
     create mode 100644 b.txt
    (base) [root@CentOS-wangml gitDir]# git status
    # On branch master
    nothing to commit, working directory clean
    

    查看版本库信息

    注意:git log --oneline只会显示从版本库最初版本到当前版本

    (base) [root@CentOS-wangml gitDir]# git log
    commit 800f2d80f661a0cf686612fc3b4ae9a6c28f5bf0
    Author: wangml <myemal@my.com>
    Date:   Fri Jul 9 15:43:04 2021 +0800
    
        create a.txt b.txt
    (base) [root@CentOS-wangml gitDir]# git log --oneline
    800f2d8 create a.txt b.txt
    

    设置用户信息

    (base) [root@CentOS-wangml gitDir]# git config --global user.name 'wangml' 
    (base) [root@CentOS-wangml gitDir]# git config --global user.email 'wangmlem@163.com'
    

    同步历史版本到工作空间

    git checkout 版本号

    (base) [root@CentOS-wangml gitDir]# git log --oneline
    097c5f9 create d.txt
    1360aa5 create c.txt
    800f2d8 create a.txt b.txt
    (base) [root@CentOS-wangml gitDir]# ls
    a.txt  b.txt  c.txt  d.txt
    (base) [root@CentOS-wangml gitDir]# git checkout 800f2d8
    Note: checking out '800f2d8'.
    
    You are in 'detached HEAD' state. You can look around, make experimental
    changes and commit them, and you can discard any commits you make in this
    state without impacting any branches by performing another checkout.
    
    If you want to create a new branch to retain commits you create, you may
    do so (now or later) by using -b with the checkout command again. Example:
    
      git checkout -b new_branch_name
    
    HEAD is now at 800f2d8... create a.txt b.txt
    (base) [root@CentOS-wangml gitDir]# ls
    a.txt  b.txt
    (base) [root@CentOS-wangml gitDir]# git checkout 097c5f9
    Previous HEAD position was 800f2d8... create a.txt b.txt
    HEAD is now at 097c5f9... create d.txt
    (base) [root@CentOS-wangml gitDir]# ls
    a.txt  b.txt  c.txt  d.txt
    

    git远程仓库

    远程仓库与本地仓库

    获取远程仓库

    使用GitLab搭建私服
    远程参考提供商

    1. Github
    2. Gitee
    3. Coding

    远程仓库操作

    1. 创建本地工作空间
    2. 初始化本地仓库
    3. 将工作空间搭建的项目结构add到暂存区
    4. 将暂存区文件提交到版本库,生成第一个版本
    5. 为当前项目创建远程仓库:https://github.com/wangmlshadow/Git-learning.git
    6. 本地仓库关联远程仓库
      git remote add origin 远程仓库地址
    7. 查看远程仓库状态
      git remote -v
    8. 将本地仓库push到远程仓库
      Github版本
    (base) [root@CentOS-wangml git]# mkdir Git-learning
    (base) [root@CentOS-wangml git]# cd Git-learning/
    (base) [root@CentOS-wangml Git-learning]# echo "# Git-learning" >> README.md
    (base) [root@CentOS-wangml Git-learning]# ls
    README.md
    (base) [root@CentOS-wangml Git-learning]# git init
    Initialized empty Git repository in /home/lighthouse/study/git/Git-learning/.git/
    (base) [root@CentOS-wangml Git-learning]# git add README.md
    (base) [root@CentOS-wangml Git-learning]# git commit -m "first commit"
    [master (root-commit) 8dcff1c] first commit
     1 file changed, 1 insertion(+)
     create mode 100644 README.md
    (base) [root@CentOS-wangml Git-learning]# git branch -M main
    (base) [root@CentOS-wangml Git-learning]# git remote add origin https://github.com/wangmlshadow/Git-learning.git
    (base) [root@CentOS-wangml Git-learning]# git push -u origin main
    fatal: unable to access 'https://github.com/wangmlshadow/Git-learning.git/': TCP connection reset by peer
    

    Gitee版本
    注意:输入Gitee账户的用户名和密码,用户名是主页网志中的名字
    例如:https://gitee.com/ZeroLim/GitLearning.git
    用户名: ZeroLim

    (base) [root@CentOS-wangml git]# mkdir GitLearning
    (base) [root@CentOS-wangml git]# cd GitLearning/
    (base) [root@CentOS-wangml GitLearning]# git init
    Initialized empty Git repository in /home/lighthouse/study/git/GitLearning/.git/
    (base) [root@CentOS-wangml GitLearning]# vim Readme.md
    (base) [root@CentOS-wangml GitLearning]# git add Readme.md
    (base) [root@CentOS-wangml GitLearning]# git commit -m 'first commit'
    [master (root-commit) 50a3660] first commit
     1 file changed, 1 insertion(+)
     create mode 100644 Readme.md
    (base) [root@CentOS-wangml GitLearning]# git remote add origin https://gitee.com/ZeroLim/GitLearning.git
    (base) [root@CentOS-wangml GitLearning]# git push -u origin master
    Username for 'https://gitee.com': ZeroLim
    Password for 'https://ZeroLim@gitee.com': 
    Counting objects: 3, done.
    Writing objects: 100% (3/3), 232 bytes | 0 bytes/s, done.
    Total 3 (delta 0), reused 0 (delta 0)
    remote: Powered by GITEE.COM [GNK-5.0]
    To https://gitee.com/ZeroLim/GitLearning.git
     * [new branch]      master -> master
    Branch master set up to track remote branch master from origin.
    

    从远程仓库下载

    (base) [root@CentOS-wangml test]# git init
    Initialized empty Git repository in /home/lighthouse/study/git/test/.git/
    (base) [root@CentOS-wangml test]# git pull https://gitee.com/ZeroLim/GitLearning.git master
    remote: Enumerating objects: 7, done.
    remote: Counting objects: 100% (7/7), done.
    remote: Compressing objects: 100% (3/3), done.
    remote: Total 7 (delta 0), reused 0 (delta 0), pack-reused 0
    Unpacking objects: 100% (7/7), done.
    

    提交冲突问题

    场景:
    User1                             User2
    git pull GitLearning master       git pull GitLearning master
                                      修改text2文件
    修改text2文件                      git add ...
                                      git commit ...
    ...                               git push origion master
    git add ...
    git commit ...
    git push ...# 此处会失败 在pull之后 push之前 远程仓库已经被其他用户提交修改过
    

    解决此问题:

    1. 将User2修改的内容pull到本地
    2. 对文件进行冲突合并
    3. 再次add、commit、push

    Git 分支管理

    分支

    分支就是版本库中记录版本位置(支线),分支之间项目不会影响,使用分支可以对项目起保护作用

    分支特性

    创建一个新的版本库 默认创建一个主分支 master分支

    分支操作

    查看当前分支

    (base) [root@CentOS-wangml GitLearning]# git branch
    * master
    

    创建分支

    (base) [root@CentOS-wangml GitLearning]# git branch dev
    (base) [root@CentOS-wangml GitLearning]# git branch
      dev
    * master
    #切换到指定分支 没有指定分支则创建
    (base) [root@CentOS-wangml GitLearning]# git checkout 52c2c03 -b test
    Switched to a new branch 'test'
    (base) [root@CentOS-wangml GitLearning]# git branch
      dev
      master
    * test
    

    分支之间操作的示例

    (base) [root@CentOS-wangml GitLearning]# git branch 
      dev
    * master
      test
    (base) [root@CentOS-wangml GitLearning]# ls
    Readme.md  src  test_branch  test_branch2
    (base) [root@CentOS-wangml GitLearning]# touch test_branch3
    (base) [root@CentOS-wangml GitLearning]# git add test_branch3
    (base) [root@CentOS-wangml GitLearning]# git commit -m 'add test_branch3'
    [master ac6c449] add test_branch3
     1 file changed, 0 insertions(+), 0 deletions(-)
     create mode 100644 test_branch3
    (base) [root@CentOS-wangml GitLearning]# ls
    Readme.md  src  test_branch  test_branch2  test_branch3
    (base) [root@CentOS-wangml GitLearning]# git checkout dev 
    Switched to branch 'dev'
    (base) [root@CentOS-wangml GitLearning]# ls
    Readme.md  src  test_branch  test_branch2
    (base) [root@CentOS-wangml GitLearning]# git checkout master 
    Switched to branch 'master'
    Your branch is ahead of 'origin/master' by 3 commits.
      (use "git push" to publish your local commits)
    (base) [root@CentOS-wangml GitLearning]# ls
    Readme.md  src  test_branch  test_branch2  test_branch3
    
    转载请注明出处
  • 相关阅读:
    腾讯创业专题
    SP的新出路:亿美软通瞄准移动商务
    全球移动支付发展现状移动支付之综述篇
    C#开发终端式短信的原理和方法
    Windows CE的学习路线
    Linux Crontab 定时任务
    linux的中文man帮助
    PHP 变量与数组
    写商业计划书的几点心得 汉理资本钱学峰
    用PHP输出静态页面的两种方法
  • 原文地址:https://www.cnblogs.com/lnlin/p/14994635.html
Copyright © 2020-2023  润新知