• git的常用命令


    创建版本库:

    # 创建文件
    mkdir myapp

    # 进入文件
    cd myapp

    # 初始化代码仓库
    git init

    # 把需要提交的所有修改放到暂存区(Stage)
    git add <file>

    # 提交所有文件
    git add .

    # 提交所有.js格式文件
    git add *.js

    # 强制添加
    git add -f <file>

    # 提交代码
    git commit -m "commit_info"

    查看

    # 查看历史记录,git log命令显示从最近到最远的提交日志
    git log

    # 查看分支合并图
    # 加上 --oneline 可以让合并图更加美观
    git log --graph
    git log --graph --oneline

    # Git提供了一个命令git reflog用来记录你的每一次命令:
    git reflog

    # git status命令用于显示工作目录和暂存区的状态。
    # 使用此命令能看到那些修改被暂存到了。
    # git status不显示已经commit到项目历史中去的信息。
    git status

    # 当暂存区中没有文件时,git diff比较的是,工作区中的文件与上次提交到版本库中的文件。
    # 当暂存区中有文件时,git diff则比较的是,当前工作区中的文件与暂存区中的文
    git diff

    # 比较工作区中的文件与版本库中文件的差异。
    # HEAD指向的是版本库中的当前版本,而file指的是当前工作区中的文件。
    git diff HEAD -- <file>

    版本回退:

    Git 必须知道当前版本是哪个版本,在 Git 中,用 HEAD 表示当前版本,上一个版本就是 HEAD^,上上一个版本就是 HEAD^^,当回退版本较早时可以写成 HEAD~100

    穿梭前,用 git log 可以查看提交历史,以便确定要回退到哪个版本。

    要重返未来,用 git reflog 查看命令历史,以便确定要回到未来的哪个版本。

    git reset --hard HEAD^
    git reset --hard HEAD@{0}

    # 取消回退,commitId为你想要回到的未来版本号
    git reset --hard commit_id

    撤销修改

    这里有两种情况:

    • 一种是 file 修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

    • 一种是 file 已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

    # 文件在工作区的修改全部撤销
    git checkout -- <file>

    # 把暂存区的修改撤销掉,重新放回工作区
    git reset HEAD <file>

    对于已经提交了不合适的修改到版本库时,想要撤销本次提交,则参考上节进行版本回退。

    提示:git checkout -- file命令中的 -- 很重要,没有 -- ,就变成了“切换到另一个分支”的命令,别漏了!

    删除文件

    命令 git rm 用于从版本库删除一个文件。 如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。

    # 从版本库删除一个文件
    git rm <file>

    提示:先手动删除文件,然后使用 git rmgit add 效果是一样的。

    分支管理

    git分支.png

    创建/切换分支

    # 创建分支:
    git branch <name>

    # 切换分支(方法一):
    git checkout <name>

    # 切换分支(方法二):
    git switch <name>

    # 创建 + 切换分支(方法一):
    git checkout -b <name>

    # 创建 + 切换分支(方法二):
    git switch -c <name>

    # 从远程分支创建新的本地分支(创建前先git pull)
    git checkout -b A origin/B

    提示:从远程分支创建新的本地分支时,A 为本地分支 name ,B 为远程仓库的分支 name 。

    查看分支: git branch命令会列出所有分支,当前分支前面会标一个 * 号。

    # 查看本地分支
    git branch

    # 查看本地分支 + 提交记录的哈希值 + 提交记录
    git branch -v

    # 查看本地分支 + 提交记录的哈希值 + 上游分支 + 提交记录
    git branch -vv

    合并某分支到当前分支 通常,合并分支时,如果可能,Git 会用 Fast forward 模式,但这种模式下,删除分支后,会丢掉分支信息。

    如果要强制禁用 Fast forward 模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。

    # Fast forward 模式,删除分支后,会丢掉分支信息。
    git merge <name>

    # 普通模式合并,不会丢掉分支信息。
    git merge --no-off "commit_info" <name>

    删除分支

    # 一般删除
    git branch -d <name>

    # 强制删除
    git branch -D <name>

    储藏

    储藏可以获取你工作目录的中间状态,也就是你修改过的被追踪的文件和暂存的变更,并将它保存到一个未完结变更的堆栈中,随时可以重新应用。

    git stash

    需要说明一点,stash 是本地的,不会通过 git push 命令上传到git server 上。

    查看现有的所有储藏,此命令显然暗示了git stash可以多次保存工作进度,并用在恢复时候选择。

    # 查看储藏
    git stash list

    # 重新应用已经实施的储藏(不删除储藏)
    # 如果不指明,Git 默认使用最近的储藏并尝试应用它
    git stash apply
    git stash apply stash@{2}。
    git stash apply [--index] [<stash>]

    # 重新应用已经实施的储藏(删除储藏)
    # 选项--index除了恢复工作区的文件外,还尝试恢复暂存区。
    git stash pop [--index] [<stash>]

    # 删除一个存储的进度。(默认删除最新的进度)
    git stash drop [<stash>]

    # 清空当前所有的stash
    git stash clear

    # 基于储藏进度创建分支。
    git stash branch <branchname> <stash>

    添加/推送远程仓库

    # 关联一个远程库
    git remote add origin <address>

    # 第一次将本地库的所有内容推送到远程库上
    git push -u origin master [-f]

    # 此后,每次本地提交后,就可以使用命令推送最新修改
    git push origin master

    # 从本地推送分支
    # 如果推送失败,先抓取远程的新提交:
    git pull

    # 推荐使用
    git pull --rebase

    从远程库克隆

    要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。

    Git支持多种协议,包括 httpsssh ,其中 ssh 协议速度最快。

    # 从远程仓库克隆
    git clone [url]

    如果希望在克隆的时候,自己定义要新建的项目目录名称,可以在上面的命令末尾指定新的名字:

    # 唯一的差别就是,现在新建的目录成了mygrit,其他的都和上边的一样。
    git clone [url] <myFile>

    建立本地分支和远程分支的关联

    git branch --set-upstream-to=origin/A B

    提示:此处 A 为远程分支 name , B 为本地分支 name。

    切换远程源

    #查看远程库的信息:
    git remote

    #查看远程库的信息,显示更详细的信息:
    git remote -v

    # 先把所有为保存的修改打包为一个commit
    git commit -m "Change repo."

    # 删掉原来git源
    git remote remove origin [old_url]

    # 将新源地址写入本地版本库配置文件
    git remote add origin [new_url]

    # 提交所有代码
    git push -u origin master
  • 相关阅读:
    [HDU] 1269 迷宫城堡最简单的强连通分支题
    [HDU] 1301 Jungle Roads赤裸裸的最小生成树
    [HDU] 2647 Reward带有贪心算法的拓扑排序
    [HDU] 1181 变形课简单建模后广搜
    【慢慢学Android】:5.短信拦截
    【慢慢学Android】:8.获取所有短信
    ubuntu下设置Android手机驱动
    Win7笔记本变为热点供手机上WiFi
    VS快捷键和小功能
    【慢慢学Android】:11.对话框大全
  • 原文地址:https://www.cnblogs.com/dmzna/p/14061209.html
Copyright © 2020-2023  润新知