zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    隆重推出PowerDesinger 12.1.0.1913破解补丁
    Glowcode 6.0 破解手记,.Net IL技术
    爬虫如何抓取到Asp.Net中__doPostBack获取新页面的数据
    谁是股市上的最大受益者
    带强名的.net程序反向工程后汇编中的问题总结
    让所有的实体店成为网店的体验店
    推出网站大鱼搜索
    利用搜索引擎技术抢注域名
    在程序中显示PDF文件不依赖于Arcobat Reader的PDF阅读器开发
    用开源Carrot2的后缀树算法做Web文本聚类
  • 原文地址:https://www.cnblogs.com/yangrenmu/p/11147310.html
Copyright © 2011-2022 走看看