Git 常用命令
in with 0 comment

Git 常用命令

in with 0 comment

1、配置git全局信息

$ git config --global user.name 'XXX'
$ git config --global user.email 'XXX'

2、创建本地库

$ mkidir learngit     # 自定义文件夹
$ cd learngit
$ touch test.md       # 创建test.md文件
$ pwd               # 显示当前目录

3、常用CRT

$ git init   # 初始化代码仓库
$ git add learngit.txt                 # 把所有要提交的文件修改放到暂存区
$ git commit -m 'add a file'           # 把暂存区的所有内容提交到当前分支
$ git status                        # 查看工作区状态
$ git diff                          # 查看文件修改内容
$ git log                           # 查看提交历史
$ git log --pretty=oneline           # 单行显示
$ git reset --hard HEAD^             # 回退到上一个版本,其中(HEAD^^(上上版本),HEAD~100(往上100个版本))
$ commit id                           # (版本号) 可回到指定版本
$ git reflog                          # 查看历史命令
工作区(Working Directory)
版本库(Repository  # .git
stage(index)      # 暂存区
master            # Git自动创建的分支
HEAD              # 指针
$ git diff HEAD -- <file>       # 查看工作区和版本库里最新版本的区别
$ git checkout -- <file>        # 用版本库的版本替换工作区的版本,无论是工作区的修改还是删除,都可以'一键还原'
$ git reset HEAD <file>         # 把暂存区的修改撤销掉,重新放回工作区。
$ git rm <file>                 # 删除文件,若文件已提交到版本库,不用担心误删,但是只能恢复文件到最新版本

4、创建SSH Key,建立本地Git仓库和GitHub仓库之间的传输的秘钥

$ ssh-keygen -t rsa -C 'your email'    # 创建SSH Key
$ git remote add origin git@github.com:username/repostery.git 
# 关联本地仓库到远程仓库、远程库的名字为 `origin`

$ git push -u origin master 
# 第一次把当前分支master推送到远程,-u参数不但推送,而且将本地的分支和远程的分支关联起来

$ git push origin master                # 把当前分支master推送到远程

$ git clone git@github.com:username/repostery.git                            
# 从远程库克隆一个到本地库

5、分支操作

$ git checkout -b dev                   # 创建并切换分支
#相当于git branch dev 和git checkout dev 
$ git branch                           # 查看当前分支,当前分支前有个*号
$ git branch <name>                    # 创建分支
$ git checkout <name>                  # 切换分支
$ git merge <name>                     # 合并某个分支到当前分支
$ git branch -d <name>                 # 删除分支
$ git log --graph                      # 查看分支合并图
$ git merge --no-ff -m 'message' dev   # 禁用Fast forward合并dev分支

$ git stash                            # 隐藏当前工作现场,等恢复后继续工作
$ git stash list                       # 查看stash记录
$ git stash apply                      # 仅恢复现场,不删除stash内容
$ git stash drop                       # 删除stash内容
$ git stash pop                        # 恢复现场的同时删除stash内容
$ git branch -D <name>                 # 强行删除某个未合并的分支

# 开发新feature最好新建一个分支
$ git remote                          # 查看远程仓库
$ git remote -v                       # 查看远程库详细信息
$ git pull                            # 抓取远程提交
$ git checkout -b branch-name origin/branch-name  
# 在本地创建和远程分支对应的分支

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

6、其他---标签

$ git tag v1.0                        # 给当前分支最新的commit打标签
$ git tag -a v0.1 -m 'version 0.1 released' 3628164  
# -a指定标签名,-m指定说明文字

$ git tag -s <tagname> -m 'blabla'    # 可以用PGP签名标签
$ git tag                             # 查看所有标签
$ git show v1.0                       # 查看标签信息
$ git tag -d v0.1                     # 删除标签
$ git push origin <tagname>           # 推送某个标签到远程
$ git push origin --tags              # 推送所有尚未推送的本地标签