Git 学习

Git 与 GitHub

Git

git官方网站: https://git-scm.com/

Git 是一个版本控制系统,能够有效的管理历史代码,并且跟踪代码的修。

缺点

  • 本地工具,只能在本地使用。
  • 电脑丢失,则代码丢死。

GitHub

github官网https://github.com/

GitHub 是一个云托管和专门为开发人员协作的平台。它允许存储数据到云端,一些服务免费。是对Git的补充。

Git 使用

Git 安装

git官方网站: https://git-scm.com/

windows 安装

  1. 进入官网下载安装包

  2. 双击允许下载的安装包

  3. 一路next走

  4. 通过cmd检测git是否安装成功

    • git --version
      

Git 体验

在一个空文件夹下创建一个文本文件。image-20220624012536268

初始化存储库

  • git init
    
  • 此命令会在当前文件夹下生成 .git 文件夹

  • image-20220624012946840

查看文件状态

  • git status
    
  • On branch master      	# 当期处于主分支上
    
    No commits yet			# 没有存储的项目版文
    
    Untracked files:		# 未跟踪的文件列表
      (use "git add <file>..." to include in what will be committed)
            initial-commit.txt
    
    nothing added to commit but untracked files present (use "git add" to track)
    

将待跟踪的文件加入到暂存区

暂存区的内容将成为下一次commit提交的内容。

  • 将指定文件加入到暂存区

    • git add initial-commit.txt
      
  • 将所有未跟踪文件加入到暂存区

    • git add .
      
  • 然后通过git status检查

    • On branch master
      
      No commits yet
      
      Changes to be committed:
        (use "git rm --cached <file>..." to unstage)
              new file:   initial-commit.txt
      

将暂存区的内容提交到本地存储库

  • git commit -m '修改信息描述'
    
  • git commit -m "added first .txt file"
    

查看日志

  • git log
    
  • 可以查看提交信息

    • commit d3b746b92f25192a1f9df0e00668b45dfbdb4e80 (HEAD -> master) #  提交的唯一 ID,提交到的分支
      Author: acwink <acwink@163.com>									 #  提交的作者信息
      Date:   Fri Jun 24 01:43:55 2022 +0800							 #  提交时间
      
          added first .txt commit										 #  提交的文件
      

通过提交的ID切换到指定版本

  • git checkout d3b746b92f25192a1f9df0e00668b45dfbdb4e80
    
  • 项目切换到指定 提交ID:d3b746b92f25192a1f9df0e00668b45dfbdb4e80 的版本。

    • Note: switching to 'd3b746b92f25192a1f9df0e00668b45dfbdb4e80'.				# 切换的版本ID
      
      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 switching back to a branch.
      
      If you want to create a new branch to retain commits you create, you may
      do so (now or later) by using -c with the switch command. Example:
      
        git switch -c <new-branch-name>
      
      Or undo this operation with:
      
        git switch -
      
      Turn off this advice by setting config variable advice.detachedHead to false
      
      HEAD is now at d3b746b added first .txt commit
      

切换到指定分支

  • git checkout master(分支名称)
    
  • Previous HEAD position was d3b746b added first .txt commit
    Switched to branch 'master'
    

Git 分支

主分支一般是经过测试,能够完好运行的分支。所以,我们不能直接修改主分支,因为如果修改时出现问题,则会影响到业务。大多数使用自动化部署,使用的master分支。

所以,我们可以通过创建 分支,分支中包含主分支的所有内容,并且我们可以在新的分支中,修改bug或实现新的功能。然后,测试无误后将新分支合并到主分支中。

查看存储库现有分支

  • git branch
    
  • * master # * 表示当前所在的分支为 master,这里我还没有创建分支,只有一个默认分支
    

创建分支

  • git branch second-branch
    
  • 这里创建了一个叫做 second-branch 的分支

    • 通过 git branch 检查当前存储库的分支

    • * master
        second-branch
      

切换分支

  • git checkout second-branch
    git switch second-branch
    
  • 此处将 切换到 second-branch 分支

    • master
      * second-branch
      

创建分支并切换

  • git checkout -b third-branch
    git switch -c third-branch
    
  • 这个命令将 创建 third-branch 分支,并切换到该新创建的分支中。

    • master
      second-branch
      * thrid-branch
      

在分支上提交修改文件

  • 当我们在分支上提交修改文件后,通过 git log 查看提交记录

    • thrid-branch 上记录

      • commit 8c4be8ee4813928b749c4361d3603265cbf2f4df (HEAD -> thrid-branch)
        Author: acwink <acwink@163.com>
        Date:   Fri Jun 24 02:12:40 2022 +0800
        
            added branches text file
        
        commit 837db1fbb941c3be6765ab740472395fa0648de2 (second-branch, master)
        Author: acwink <acwink@163.com>
        Date:   Fri Jun 24 01:48:19 2022 +0800
        
            added second .txt file
        
        commit d3b746b92f25192a1f9df0e00668b45dfbdb4e80
        Author: acwink <acwink@163.com>
        Date:   Fri Jun 24 01:43:55 2022 +0800
        
            added first .txt commit
        
    • master 上的记录

      • commit 837db1fbb941c3be6765ab740472395fa0648de2 (HEAD -> master, second-branch)
        Author: acwink <acwink@163.com>
        Date:   Fri Jun 24 01:48:19 2022 +0800
        
            added second .txt file
        
        commit d3b746b92f25192a1f9df0e00668b45dfbdb4e80
        Author: acwink <acwink@163.com>
        Date:   Fri Jun 24 01:43:55 2022 +0800
        
            added first .txt commit
        
  • 对比上面 master 分支 和 thrid-branch 分支的提交记录,可以发现在 thrid-branch 分支上的提交,并没有影响到主分支的提交信息。

将分支合并

  • 我们首先处于某个分支中,这里我们处于 master 分支中。

  • git merge thrid-branch
    
  • 这个命令会将 thrid-branch 分支中修改的部分和 master 分支的内容合并

    • Updating 837db1f..8c4be8e
      Fast-forward
       working-with-branches.txt | 1 +
       1 file changed, 1 insertion(+)
       create mode 100644 working-with-branches.txt
      
  • 然后我们通过 git log查看 master 提交日志,会发现它和 thrid-branch 提交日志一样了。

    • commit 8c4be8ee4813928b749c4361d3603265cbf2f4df (HEAD -> master, thrid-branch)
      Author: acwink <acwink@163.com>
      Date:   Fri Jun 24 02:12:40 2022 +0800
      
          added branches text file
      
      commit 837db1fbb941c3be6765ab740472395fa0648de2 (second-branch)
      Author: acwink <acwink@163.com>
      Date:   Fri Jun 24 01:48:19 2022 +0800
      
          added second .txt file
      
      commit d3b746b92f25192a1f9df0e00668b45dfbdb4e80
      Author: acwink <acwink@163.com>
      Date:   Fri Jun 24 01:43:55 2022 +0800
      
          added first .txt commit
      

Git 对数据操作

删除工作空间中文件的后续处理

  • 这里我们删除了 working-with-branches.txt 文件,然后运行 git status

    • On branch master
      Changes not staged for commit:
        (use "git add/rm <file>..." to update what will be committed)
        (use "git restore <file>..." to discard changes in working directory)
              deleted:    working-with-branches.txt
      
      no changes added to commit (use "git add" and/or "git commit -a")
      
  • 我们还需要处理暂存区对应的文件

    • 检查哪些文件属于我们的暂存区中

      • git ls-files
        
      • 此命令将输出我们暂存区中文件内容

        • initial-commit.txt
          second-commit.txt
          working-with-branches.txt
          
      • 可以看见,一开始我们已经从工作项目中删除了 working-with-branches.txt, 但是在暂存区中还存在该文件。

    • 删除当前暂存区文件

      • git rm working-with-branches.txt
        
      • working-with-branches.txt 文件从暂存区删除,通过git status 查看状态

        • On branch master
          Changes to be committed:
            (use "git restore --staged <file>..." to unstage)
                  deleted:    working-with-branches.txt
          
        • 可以发现,我们有一个待提交的更改,也就是删除文件的更改

    • 再次查看当前暂存区

      • git ls-files
        
      • 此命令输出

        • initial-commit.txt
          second-commit.txt
          
        • 可以发现,working-with-branches.txt 文件已经被我们从暂存区删除了。

  • 将修改提交

修改某个文件后不满意回到最后一次提交的状态

  • git checkout initial-commit.txt
    git restore initial-commit.txt
    
  • 将 initial-commit.txt 恢复到最后一次提交的状态

将当前所有修改的文件回到最后一次提交的状态

  • git checkout .
    git restore .
    
  • 此命令会将当前项目文件恢复到上一次提交的状态

清除所有未跟踪的目录和文件

  • git clean -dn
    
  • 此命令列出所有未跟踪且新创建要删除的文件或文件夹

    • Would remove test.txt
      
  • git clean -df
    
  • 此命令会清除 所有未跟踪的文件也就是没有执行git add 的新创建的文件或文件夹。

    • Removing test.txt
      

已经添加到暂存区的文件回到上一次提交状态

  • git reset initial-commit.txt
    git restore --staged initial-commit.txt 
    
  • 这个命令将上一次提交的initial-commit.txt 文件复制到暂存区中,也就是会把我们添加到暂存区中同名文件覆盖

    • Unstaged changes after reset:
      M       initial-commit.txt
      
    • 这个时候git status查看文件跟踪状态发现,之间已经添加到暂存区的文件有被移除了

  • git checkout initial-commit.txt
    git restore initial-commit.txt
    
  • 将当前文件恢复到上一次提交的状态

回滚到提交的某个版本

软回滚

  • git reset --soft HEAD~1(相当于取消上一次提交,1 可以 换成任意数值)
    
  • 当执行上面的命令过后,我们在查看提交日志 git log 会发现最后一次次的提交已经消失了。 这是一个软重置,因为我们没有提交的修改文件仍在暂存区,直接执行 git commit -m 'submit' 还能够提交。工作文件夹下的文件不会删除

默认回滚

  • git reset HEAD~1
    
  • 当执行上面的命令过后,我们在查看提交日志 git log 会发现指定的最后一次的提交已经消失了。 这是一个默认重置,因为暂存区没有修改并没有提交的文件也被从暂存区删除了。工作文件夹下的文件不会删除

硬回滚

  • git reset --hard HEAD~1
    
  • 此命同样会回滚到最后一次提交之前,不过会删除暂存区内容,删除 工作文件夹相对于当前回滚的版本新添加的文件或新添加的内容。

删除第一个commit

  • git update-ref -d HEAD

删除不需要的分支

  • git branch -D fourth-branch  # -D 后面可以跟多个分支名,以空格隔开
    # 下面这个命令只能删除已经合并的分支
    # git branch -d fourth-branch
    
  • 这个命令会强制删除所有指定分支不管是否合并

    • Deleted branch fourth-branch (was 837db1f).
      

关于不属于任何分支的游离分支

当我们已经提交了某个版本,但是发现忘了上一个版本中有些东西忘记修改了,我们通过提交ID创建一个HEAD分离的分支, 然后修改,并和主分支合并。创建的这个分支并不是真正的分支。如何没有合并当我们切换到其他分支时这个创建的分支将会消失。(一旦切换到其他分支该分支就会消失)

  • git checkout ID
    
  • 这个命令会以某个提交后的状态创建一个HEAD分离分支

    • * (HEAD detached at 57a78c4)
        master
      

第一种保存头分离分支方式

  • 当然我们也可以恢复该分支,当存在提交的时候,git 会给出一个id,让我们通过 该 id 创建一个新分支包含其内容

  • 当我们切换到其他分支时 git 提示

    • Warning: you are leaving 1 commit behind, not connected to
      any of your branches:
      
        f2dcfaa changes made in detached head
      
      If you want to keep it by creating a new branch, this may be a good time
      to do so with:
      # 重点
       git branch <new-branch-name> f2dcfaa
      
      Switched to branch 'master'
      
  • 然后我们通过git给的id创建一个新的分支, 以恢复我们之间修改并提交的头分离的分支

    • git branch test f2dcfaa
      
    • 此命令创建了一个test正式分支,包含了之间未合并的头分离分支的内容。

    • 然后我们可以通过之间的合并命令将其合并到主分支中

第二种保存头分离分支的方式

  • git checkout ID
    
  • 先创建一个头分离分支,然后在该头分离分支上执行修改并提交

  • git branch xx-branch
    
  • 在该游历分支上创建,正式分支。然后就能保存下该头分离分支的修改到xxx-branch分支上

Git 忽略文件配置

在工作区域的根目录下创建 .gitignore 文件,用于配置git需要忽略跟踪的文件。

假设我们工作目录中有一个 test.log 文件需要忽略跟踪则在 .gitignore 文件配置。这些忽略的文件不会被添加到暂存区

  • test.log # 表示忽略 test.log 文件
    *.log # 表示所有 以 .log 结尾的文件全部忽略
    !test.log # 表示将test.log 排除在 *.log 范围外
    web/		# 表示忽略 web 文件夹及其内容
    

Git 命令总结

命令 作用
git --version 查看git版本
git init 初始化一个空的git代码存储库
git status 检查工作区域和暂存区域状态
git log 显示当前分支的所有提交记录,也可以通过ID配合checkout 查看特定的提交
git ls-files 列出暂存区域的所有文件
git add filename 添加一个文件 到暂存区
git add . 添加所有工作目录文件到 暂存区
git commit -m “message” 创建一个新的提交
git checkout commitId 查看特定的提交,不过会创建一个头分离分支,commitId是git log提供的
git branch branchname 以当前所在分支为模板,创建一个叫branchname的新分支
git switch branchname 切换到branchname分支
git checkout branchname 切换到branchname分支
git checkout -b branchname 创建branchname分支,并切换到该分支
git switch -c branchname 创建branchname分支,并切换到该分支
git merge otherbranch 将otherbranch分支和当前所在分支合并

删除/撤销

  • 将文件从工作目录和暂存区种删除

    • git rm filename
      
  • 将未添加到暂存区文件,回滚到上一次提交时的状态

    • # . 表示修改的所有没有提交到暂存区的文件回滚到上一次提交状态,单个文件名也是这样
      git checkout (--) filename or .
      git restore filename or .
      
  • 将所有没有跟踪过的文件或文件夹删除

    • git clean -df
      
  • 将已经添加到暂存区域的文件或文件夹回滚到上一次提交的状态, 取消暂存区的修改

    • # 先用,取消暂存区的修改
      git restore --staged filename or .
      
      # 然后用,回滚上一次提交的状态
      git restore filename or .
      # 两者二选一,
      git checkout filename or .
      
  • 将添加到暂存区的文件出暂存区

    • git rm --cached filename
      
  • 回滚到前n次提交

    • git reset HEAD~n		    # 默认会不存在回滚版本的文件从暂存区清除,保留工作区文件
      git reset --soft HEAD~n		# 软重置,不会保留回滚前的暂存区内容和工作目录的文件
      git reset --hard HEAD~n		# 硬重置,清除暂存区内容,删除工作目录的文件
      
  • 删除分支

    • git branch -D branchname ...  # 删除指定分支 无论 是否已经合并
      git branch -d branchname ...  # 只能删除已经合并的分支
      

Git 基础练习

image-20220625094050760

Git 恢复操作

保留当前未提交的分支修改,并跳到回溯到最后一次提交状态

  • git stash
    
    • 此命令会保留当前分支未暂存的更改,然后回溯到最后一次提交状态
  • git stash apply
    
    • 此命令默认将恢复我们回溯前最后保留的未暂存的更改。
  • git stash list
    
    • 此命令能够查看我们之前执行 git stash 保存的东西

    • stash@{0}: WIP on master: 7bb5a43 file1 added
      stash@{1}: WIP on master: 7bb5a43 file1 added
      
  • git stash apply index
    
    • 此命令index是list种的数字,0为最后一次保存。该命令会恢复指定的编号的保存的东西
  • git stash push -m "third feature added"
    
    • 当然我们保存的时候还是能添加注释信息的

    • stash@{0}: On master: third feature added
      stash@{1}: WIP on master: 7bb5a43 file1 added
      stash@{2}: WIP on master: 7bb5a43 file1 added
      stash@{3}: WIP on master: 7bb5a43 file1 added
      stash@{4}: WIP on master: 7bb5a43 file1 added
      stash@{5}: WIP on master: 7bb5a43 file1 added
      stash@{6}: WIP on master: 7bb5a43 file1 added
      
  • git stash pop index
    
    • 此命令会将指定的index保留的东西恢复,并把index从保留列表种删除
  • git stash clear
    
    • 此命令将清除保留列表

查看已经提交或保留列表中已经删除的信息操作记录

  • git reflog
    
    • 此命令能查我的操作日志信息,里面的hash有用,可以用来恢复
  • 假设某个已经删除的分支的hash值是 a8a2206

    • # 以此分支为模板,创建头分离分支
      git checkout a8a2206
      # 在该头分离分支上执行创建分支命令,保存分支
      git checkout -b a8a2206
      
  • 假设某个已经删除的提交的hash值是 e2b7724

    • git reset --hard e2b7724
      
    • 此命令可以回滚到该提交

Git 合并分支

Fast-Forward Merge(快进合并)实际使用

快进合并就是指的,我们的从主分支中创建一个分支,然后再分支上做更改,但是组分支一直在创建分支后就没有额外的提交。这个时候将 创建的分支合并到主分支就是快进合并。快进合并并不会创建新的提交,而将HEAD移到新需要合并的分支上。
image-20220625112216929

合并分支时使用

  • git merge --squash 分支名
    
    • 会把分支上的所有提交合并全部放入当前分支暂存区中,然后通过手动进行一次提交
  • 这个命令混滚到合并之前状态只需要回滚一次就行

    • git reset --hard HEAD~1
      

Non Fast-Forward Merge(非快进合并)

当我们主分支创建分支后,主分支进行了提交操作发生改变,创建的分支也发生改变。这种情况下的合并会默认创建一个新的提交。
image-20220625114507666

合并分支时使用

  • git merge --squash 分支名
    
    • 会把分支上的所有提交合并全部放入当前分支暂存区中,然后通过手动进行一次提交

将分支重新设置(变基 )

  • git rebase master
    
    • 将分支以 master分支为基础,重新提交所修改的内容,注意这个会修改之前提交的ID

当两个分支处理同一个文件发生冲突

  • 当合并两个分支的时候,git status出现错误信息

    • You have unmerged paths.
        (fix conflicts and run "git commit")
        (use "git merge --abort" to abort the merge)
      
      Unmerged paths:
        (use "git add <file>..." to mark resolution)
              both modified:   feature/f1.txt
      
    • git merge --abort # 取消合并分支
      
    • 或者选择选项修复,然后提交

      • image-20220625145546721

捡樱桃部分合并

  • 在子分支中选中需要和并的提交id,然后切换到准备合并到的分支上

    • git cherry-pick c8e726d5730d51cad66fbb301652a0d3eb4ee73a
      
      • 这个命令会把 这个id提交时的修改信息拷贝一份,然后再当前分支上提交。

Git Tag

查看标签列表

  • git tag
    

为某一个提交打上tag(轻量级)

  • 先从log中找到提交id

  • git tag 1.0 10125d356b67fbd8ce3b93d54d1014f0be67c981
    
  • 上面为10125d356b67fbd8ce3b93d54d1014f0be67c981提交打上了1.0的标记

为最新的提交打上tag

  • git tag -a 2.0 -m "This is the latest version"
    
  • 这里会带注释

显示某一个tag的提交信息

  • git show 1.0
    
  • 这里显示tag为1.0的提交信息

使用标签生成分离头分支

  • git checkout 1.0
    
  • 这里生成标签为1.0 的分离头分支

删除tag

  • git tag -d 1.0
    
  • 这里删除了 1.0 tag

Git 命令总结

命令 作用
git stash 临时存储未暂存和未提交的更改,然后回滚到修改之前
git reflog 所有项目的更改日志,包括删除的提交,可以使用这些数据恢复已经删除的数据
git merge 合并分支,合并成一个提交,或递归合并或快速移动头合并
git rebase 用于改变当前分支的父亲,然后再重新再执行提交
git cherry-pick 复制某一指定的提交,然后提交成为当前分支的头部

GitHub 使用

用于托管git存储库

Git 和 GitHub 连接概念

image-20220625161827109

第一步: 与远程存储库建立连接

  • git remote add origin URL
    
    • origin: 远程机器的名字, 它可以 是URL的别名 或 URL的简写。URL: 远程存储库的唯一URL。

第二步:将本地数据推送到云端存储库

  • git push 
    

第三步:如果我们再github 上创建了分支,本地也想使用

  • git pull
    

GitHub 体验

**创建账户:**https://github.com/

创建一个远程仓库

第一步

image-20220625163124650

第二步

image-20220625163221991

第三步

image-20220625163533435

第四步:得到存储库的一些信息

image-20220625163903348

将本地存储库推送至云端

第一步:和云端存储库建立连接

  • git remote add origin https://github.com/acwink/github-basics.git
    
    • origin 是 URL的别名

第二步:将主分支重命名未main,因为master有歧视黑人的意思

  • git branch -M main
    

第三步:简单的说是推送某一分支到云端

  • git push origin main
    

第四步:创建github token

image-20220625170446245-1670855730655

image-20220625170446245

image-20220625170628748

第五步:本地添加用户凭证

image-20220625171249930

第六步:查看是否推送成功

image-20220625171718005

提示

  • git branch -a
    
    • 此命令可以列出本地和远程分支,本地会存储远程存储库分支的副本
  • git branch -r
    
    • 只列出本地分支
有个问题,第一次推送过后我们后面推送是失败的
  • git push # 推送
    # 必须使用, 如果过远程仓库不存在该分支则会创建,先在本地创建在push到远程
    git push origin 分支名
    
    • fatal: The current branch main has no upstream branch.
      To push the current branch and set the remote as upstream, use
      
          git push --set-upstream origin main
      
      

在远程仓库创建分支

第一步:在这里输入要创建的分支名

image-20220625212533069

第二步:将github上创建的分支,拉到本地

  • git ls-remote
    
    • 50f93ff53d3624f8c4db9f17a93d552fe03876e4        HEAD
      22be85698855dfd9e41a659f0b4dcde2960614ca        refs/heads/feature
      6c7c25a6180879e5f7f1b6a3a066e761d41f1ed3        refs/heads/feature-remote
      50f93ff53d3624f8c4db9f17a93d552fe03876e4        refs/heads/main
      
    • 本地保留的远程分支副本中没有feature-remote 因为它是在github上创建的

第三步:将分支拉取或拉取并合并

  • git fetch origin
    
    • 此命令会把服务器创建的分支拉取下来, 并保存到本地的远程副本中
  • git pull origin 分支
    
    • 拉去并合并远程分支到我们本地对应的分支中

      • From https://github.com/acwink/github-basics
         * branch            main       -> FETCH_HEAD
        Already up to date.
        

在本地创建可编辑且自动跟踪远程分支的分支

image-20220625221112026

  • git branch --track feature-remote-local(创建的本地分支名) origin/feature-remote(需要跟踪的远程分支名)
    
    • 此命令会创建一个跟踪远程分支的本地分支

然后我们在当前分支上添加一个文件并提交。切换到远程分支本地副本能够发现,我们的更改没有在此副本上生效。

我们必须给 feature-remote-local 上传到云端,当然执行的前提是 分支名称要一样,否则执行失败

  • git push
    
    • 此命令会将我们的更新带到远程分支上

如果我们在远程提交

  • git pull
    
    • 可以同步所有提交到本地

提示

  • git branch -vv
    
    • 能够看到分支更多的提示

将远程仓库克隆到本地

第一步: 获取仓库唯一URL

image-20220626083556889

第二步:克隆到本地

  • git clone https://github.com/acwink/github-basics.git
    

解决问题推送过后和本地远程分支副本没有逻辑联系的问题

推送的时候我们应该使用

  • # git push -u origin 分支名称
    
    git push -u origin feature-upstream
    
    • Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
      remote: 
      remote: Create a pull request for 'feature-upstream' on GitHub by visiting:
      remote:      https://github.com/acwink/github-basics/pull/new/feature-upstream
      remote: 
      To https://github.com/acwink/github-basics.git
       * [new branch]      feature-upstream -> feature-upstream
       # 重点设置当前分支跟踪远程仓库本地副本分支
      branch 'feature-upstream' set up to track 'origin/feature-upstream'.
      

删除分支

删除远程跟踪分支

  • 删除本地跟踪的远程分支副本

    • git branch --delete --remotes origin/feature(远程分支)
      
  • 删除远程的分支, 这个命令本地的远程分支副本也会被删除

    • git push origin --delete feature
      

撤销提交

  • 先在本地撤销提交

    • git reset --hard HEAD~1
      
  • 将分支push到远程

    • git push --force origin main	
      
    • 这个命令一定要注意使用,因为可能会覆盖其他人已经完成的修改提交

Git 与 GitHub 命令总结

命令 作用
git remote 显示当前远程服务器
git branch -a 得到所有分支列表,包括本地跟踪的分支和远程跟中的分支
git branch -r 查看所有远程跟中的分支
git remote show origin 查看更多信息,关于当前的配置
git branch -vv 提供本地跟踪分支的列表
git branch --track 本地跟踪分支名 origin/要跟踪的远程分支名 创建一个本地跟踪的分支,强烈推荐和远程分支名一样