Git常用命令

author-info wechatOfficialAccount

廖雪峰老师Git教程学习笔记: https://www.liaoxuefeng.com/wiki/896043488029600

Git是什么?

Git是先进的分布式版本控制系统。

Git的诞生

Linux为了管理Linux代码而使用C语言开发的版本控制系统

Git安装

安装完成之后需要进行配置:

git config --global user.name "Your name"
git config --global user.email "Your email"

版本库

版本库又名仓库,英文名repository,可以理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

创建版本库

git init

把文件添加到版本库(添加到暂存区Stage)

git add filename1 filename2 ...

把文件提交到仓库中(添加到版本仓库(branch))

git commit -m "Your commit"

查看当前仓库目录下是否有未管理的新文件

git status

查看提交的版本

git log
# 或者
git log --pretty=oneline

版本回退

# HEAD表示当前版本,回退到上一版本则写为HEAD^,上上一版本为HEAD^^
git reset --hard HAED^^
# 可以使用~简写多版本回退
git reset --hard HEAD~2
# 实际上可以通过commit的版本号来指定回退(或者前进)的具体版本
git reset --hard commit-id

查看以往log命令

git reflog

将版本库文件替换工作区文件

git checkout --filename

删除版本库中的文件

git rm filename

本地仓库同步到Github

  • 生成ssh key

    ssh-keygen -t rsa -C "Your email"
    

    接下来全部回车,然后会在当前目录下生成两个文件:id_rsaid_rsa.pub

  • 添加id_rsa.pub 的内容到你的Github账号:

    # 依次展开: Settings > SSH and GPG keys >New SSH key
    

    随便起个Title,然后复制Key点击添加SSH key即可完成!

  • 新建Github仓库

  • 将本地仓库关联到远程仓库

    git remote add origin git@github.com:yourname/your-repository.git
    
  • 将本地库的内容推送到远程库

    # 第一次推送使用 -u参数,以后每次推送都不必用此参数
    git push -u origin master
    

远程仓库克隆到本地

git clone git@github.com:yourname/your-repository.git

创建分支

# checkout命令用来切换分支,-b参数表示创建分支
git checkout -b branch-name
# 可以通过branch命令创建分支而不切换
git branch branch-name
# 可以通过checkout 命令切换分支
git checkout branch-name

查看分支

git branch

切换分支

git checkout branch-name

合并分支

git merge branch-name

删除分支

git branch -d branch-name

解决分支冲突

需要将冲突的文件手动修改后再进行合并

查看分支合并图

git log --graph

使用普通模式合并(区别于快速合并:fast-forward)

Fast-forward模式合并看不出曾经做过合并操作,为了能看出曾经做过合并操作,可以带参数合并:

git merge --no-ff -m "Your commit content" branch-name

分支策略

稳定版本使用master分支,开发版本使用dev分支

bug分支

当出现bug需要修复时,需要先保存当前分支的工作现场再切换到新分支进行修复:

git stash

查看stash保存的内容:

git stash list

恢复stash中的内容

# 恢复而不删除stash list中的内容
git stash apply
## 恢复并删除stash中的内容
git stash pop

feature分支

当有新功能要添加时,可以使用创建新的feature分支方法;开发完成后合并到主分支并删除该分支即可;当有冲突需要强制删除分支时使用D参数:

git branch -D feature-branch

查看远程分支

git remote
##或者
git remote -v

推送分支到远程

一般来说,需要推送到远程的分支往往是需要共同开发的分支,比如master和dev分支,而bug分支和feature分支一般只有本地需要

git push origin master
git push origin dev

克隆dev分支到本地

克隆远程分支到本地时,默认只克隆了master分支,如果需要克隆dev分支,需要指定远程分支:

git checkout -b dev origin/dev

当推送到远程分支产生冲突时,需要先将远程分支最新的版本拉取下来:git pull

当拉取出错时,需要指定本地dev分支跟远程分支的关联关系

git branch --set-upstream-to=origin/dev dev

git 分支操作合并

git rebase

git 添加标签

可以为某次commit添加标签:

# 默认标签位于当前最新的commit
git tag tag-name
# 使用commit指定标签位置
git tag tag-name commit-id
# 使用git tag命令查看标签
git tag
# 使用show命令查看标签信息
git show tag-name

删除标签

git tag -d tag-name

标签推送到远程

git push origin tag-name
# 或者全部推送
git push origin --tags

远程标签删除

git push origin :refs/tags/tag-name

参与到开源项目的贡献中

在github上Fork其他作者的项目并做修改,可向作者提交pull request

让git配置显示颜色

git config --global color.ui true

版本库忽略某些文件

定义一个.gitignore文件写入忽略的文件名

此时仍旧可以通过f参数来强制添加

git命令设置别名

git config --global alias.new-command origin-command

搭建Git服务器

https://www.liaoxuefeng.com/wiki/896043488029600/899998870925664

原文地址:https://www.cnblogs.com/yczha/p/13160189.html