Git 常用命令学习笔记

1、Git 安装

# 我的 centos 6.9 已默认安装 git 1.7.1,直接使用此版本
$ git --version
git version 1.7.1

2、创建版本库

$ mkdir mygit
$ cd mygit
$ git init # 初始化一个 git 版本库
# 空的版本库就建好了,在 mygit 目录下生成了一个隐藏的 .git 目录,不能随意改动

3、将文件添加到版本库

# 添加到版本库暂存区
$ touch mycode.txt
$ git add mycode.txt   # 在创建的版本库目录中执行此命令,将 mycode.txt 文件添加到版本库暂存区

# 提交到版本库
$ git commit -m 'what is modified' # -m 后面跟的是提交更改的说明
# 一次可以提交多个文件,所以可以 add 多个文件后
$ git add myfile1.txt myfile2.txt
$ git commit -m 'add two files'

# 每次修改都需要 add --> commit 才能是更改生效

4、查看 Git 版本库/文件 当前状态

$ git status   # 查看 git 版本库当前状态
$ git diff mycode.txt  # 查看某个文件被修改的具体内容(diff:difference)
# 确认无误后再执行 git add , git commit 

5、查看提交日志

$ git log  [--pretty=oneline]  # 查看 git 提交日志,参数 --pretty=oneline 把每次提交显示成一行

6、版本回退、变更

# 回退到上一个版本,HEAD^^ 上上一个版本,HEAD~20 之前第20个版本。HEAD 为版本指针
$ git reset --hard HEAD^

# 回到指定 commit_id 的版本,commit_id 可以只写前几位,但不要太少(太少,git 可能找到多个版本)
$ git reset --hard commit_id

$ git reflog  # 查看历史命令记录,可以查看 commit id 和版本

7、查看版本库内容与工作区文件内容的区别

$ git diff HEAD -- file_name

8、撤销文件在工作区的修改

$ git checkout -- <file>    # 撤销工作区修改,错删文件也可用此命令恢复

9、撤销文件在暂存区的修改

$ git reset HEAD <file>

10、删除版本库文件

$ git rm myfile3.txt   # 删除
rm 'myfile3.txt'
$ git commit -m 'remove myfile3.txt'   # 提交

11、git clone 远程仓库文件

$ git clone https://github.com/your_username/mygit.git
# 或
$ git clone git@github.com:your_username/mygit.git     # SSH 通常比 HTTPS 快

12、把本地版本库文件同步更新到远程版本库

# 关联远程仓库
$ git remote add origin git@server_name:path/repo_name.git

# 查看远程仓库信息
$ git remote -v

# 删除远程仓库,origin 为远程仓库名称,多个远程仓库时注意名称的区别
$ git remote rm origin

# 在本地版本库下执行如下命令,以上传到 GitHub 为例
$ git remote add origin git@github.com:your_username/mygit.git   # 关联 GitHub

$ git push -u origin master        # 第一次推送加上参数 -u
$ git push origin master       # 第一次以后可省去 -u

13、创建、切换、查看、合并、删除分支

# 创建并切换分支 bra
$ git checkout -b bra

# 上面 -b 表示创建并切换,相当于如下两条命令
$ git branch bra       # 创建分支
$ git checkout bra     # 切换分支

# 查看当前分支
$ git branch

# 合并指定分支到当前分支
$ git checkout master  # 切换到 master 分支
$ git merge bra            # 将 bra 分支合并到 master

# 删除分支 bra
$ git branch -d bra        # -D 强制删除没有合并过的分支

# 查看分支合并图
$ git log --graph --pretty=oneline --abbrev-commit

# 合并分支,--no-ff 禁用 Fast forword,merge 时会产生一个新的 commit
$ git merge --no-ff -m 'merge --no-ff' bra

14、暂存、恢复当前工作现场(临时做分支工作时)

$ git stash            # 存储当前工作内容

$ git stash list   # 查看工作现场

$ git stash apply  # 恢复之前的工作内容
$ git stash drop   # 删除之前暂存的工作内容

# 上面恢复并删除的工作可以合并成一步完成
$ git stash pop        # 恢复并删除 stash

# 如果有多个 stash,可以 git stash list 查看具体的 stash,并指定要恢复的 stash
$ git stash apply stash@{0}

15、查看远程仓库信息

$ git remote   # 或在后面加上 -v 显示详细信息

16、本地仓库与远程仓库协同

$ git push origin master   # origin 远程仓库名称,master 本地仓库分支

# 克隆到本地的仓库智能看到 master 分支, 需要用到远程的其他分支可如下操作,创建本地与远程对应的分支
$ git checkout -b bra origin/bra

# 把远程分支的最新内容抓取到本地
$ git pull

# 建立本地分支与远程分支的关联关系
$ git branch --set-upstream bra origin/bra

17、创建 Git 标签

# 先切换到要创建标签的分支
$ git branch           # 查看分支
$ git checkout master  # 切换到 master 分支

# 创建标签
$ git tag v0.0.1   # 默认为 HEAD,可指定 commit id

# 查看所有标签
$ git tag

# 根据 commit id 创建标签,先查看日志,找到要创建标签的 commit id
$ git log --pretty=oneline --abbrev-commit
$ git tag v0.0.0 commit_id # 创建标签

# 查看标签信息
$ git show v0.0.0

# 创建带有说明的标签,-a 指定标签名,-m 指定说明内容
$ git tag -a v0.0.2 -m 'version 0.0.2' commit_id

# 通过私钥签名一个标签,-s 指定标签名(采用 PGP 签名,需要安装 GnuPG)
$ git tag -s v0.0.3 -m 'version v0.0.3' commit_id

18、管理 Git 标签

# 删除标签
$ git tag -d v0.0.2

# 推送标签到远程仓库
$ git push origin v0.0.1

# 推送全部未推送到远程仓库的标签
$ git push origin --tags

# 删除远程仓库标签
$ git tag -d v0.0.1        # 先删除本地标签
$ git push origin :refs/tags/v0.0.1        # 再删除远程标签

19、让 Git 忽略你不希望 commit 的文件

# 在工作区创建一个 .gitignore 文件,把要忽略的文件名填进去,然后执行 git 的 add 和 commit 就可以了
# 参考 GitHub 忽略文件配置 https://github.com/github/gitignore

# 强制添加已忽略的文件
$ git add -f file_name

20、为 Git 命令设置别名

# 给 status 取别名为 st,--global 表示当前用户有效
$ git config --global alias.st status

# 删除别名,--global 的配置在 ~/.gitconfig 里,删除对应的内容即可
# 非 --global 的在 Git 工作区的 .git/config 里
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值