• Git 的基本操作


    前言

    一些废话,请自行跳过前言。
    版本控制可以记录一个或多个文件的变化,方便我们在将来对文件进行控制。使用版本控制,我们对文件进行修改删除等任意操作后,仍可以轻松将文件恢复到原先的样子。
    git则是一个分布式版本控制系统,每个人的电脑都是一个完整的版本库,安全性高于集中式的版本控制系统。因为个人电脑坏掉不要紧,其他人电脑上还有完整的版本库代码。集中式的话,中央服务器坏掉,所有人都无法工作了,因为需要从中央服务器拉取代码。

    一些基本概念

    • 工作区:本地的工作目录,可以直接对文件进行修改等操作。
    • 暂存区:临时保存本地文件的修改。
    • 本地仓库:记录本地所有提交版本,对应本地.git文件。
    • 远程仓库:保存我们远程代码。

    git 的工作流程

    • 首先克隆远程仓库到本地,使用命令git clone
    • 在工作区修改代码。
    • 将修改的代码添加到暂存区,使用命令git add .
    • 将暂存区的文件提交到本地仓库,使用命令git commit -m 'some message'
    • 将本地仓库的代码提交到远程仓库,使用命令git push

    一些常用的命令

    git clone: 克隆项目到本地。
    git init:初始化一个本地仓库。
    git push: 推送本地仓库到远程仓库。
    git pull:拉取远程仓库代码到本地仓库。
    
    // branch 相关
    git branch xxx: 创建一个 xxx 分支。
    git branch -a:查看本地和远程的所有分支。
    git checkout xxx:切换到 xxx 分支。
    git checkout -b xxx:创建 xxx 分支,并切换到 xxx 分支。
    git branch -d xxx: 删除本地 xxx 分支,对于未合并的分支,使用 -D,强制删除。
    git push --delete xxx: 删除远程 xxx 分支。
    git merge [branch]:合并 branch 到当前分支。
    git cherry-pick [commit]:选择一个 commit ,合并到当前分支。
    
    // add 相关
    git add [filename]: 添加未跟踪/已更改的文件到暂存区。
    git add [目录]:添加该目录下所有文件到暂存区。
    git add . : 添加所有未跟踪/已修改的文件到暂存区。
    git add -f [filename]: 强制添加文件到 git 版本控制中。有些文件 git 追踪不到时,可以使用该命令。
    
    // commit 相关
    git commit -m 'some message': 将暂存区文件提交到本地仓库中。
    git commit -a -m 'some message': 将工作区文件添加到暂存区,然后将暂存区文件提交到本地仓库中。
    
    // 查看信息相关命令
    git log: 显示提交的版本历史。
    git log -p: 显示每次提交的更改。
    git log -p [file]:显示 file 文件的每次提交 diff 。
    git diff:查看工作区和暂存区的不同。
    git diff --cached: 查看暂存区和本地仓库之间的不同。
    git diff [commitId]:查看工作区和某次提交之间的不同。
    git diff [commitId] [commitId]: 查看两次提交之间的不同。
    
    // 回退相关
    git checkout [file]: 恢复暂存区指定文件到工作区。
    git checkout . : 将暂存区所有文件恢复到工作区。
    git reset --hard [commit]:回退到某次提交,同时重置工作区和暂存区与该次 commit 一致。
    
    // stash 相关
    git stash:将工作区文件保存到暂存区。
    git stash list:查看 stash 历史列表。
    git stash pop:取回最近一次的 stash 到工作区, 同时在暂存区删除该次 stash。
    
    // tag 相关
    git tag: 列出所有 tag 。
    git tag [tagname]:新建一个 tagname 在当前 commit。
    git tag -d [tag]:删除本地 tag
    git push origin :refs/tags/tagname: 删除远程 tag
    
  • 相关阅读:
    flash
    Python
    ArchLinux2012.12后续软件安装
    archlinux win7+ubuntu双系统引导问题
    转盘项目
    Archlinux121210+kde4.95声音输出解决
    作为程序员为什么一直都很努力,却没有进步?
    打造属于自己的谷歌地图版博客公告【演示+源码】
    人类已经不能阻止开源了Web 2.0开源应用大汇总
    LAMP网站架构方案分析【精辟转】
  • 原文地址:https://www.cnblogs.com/yangrenmu/p/11147310.html
Copyright © 2020-2023  润新知