git命令整理

Posted tkzc2013

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git命令整理相关的知识,希望对你有一定的参考价值。

结合使用情况并参考: https://www.jianshu.com/p/93318220cdce

1,git保存的是提交commit的修改,修改包括新增,内容修改和删除;

2,git管理的分支是提交commit的指针;

3,每一个分支都是一条有commit组成的线 和 指向某一commit的指针;

4,每一个commit都是一个独立的修改,同时包含了前面所有commit的一条线;

5,拉取或推送分支出现冲突时,首先需要解决冲突;分支合并时如果出现冲突也需要解决冲突;

6,工作区,暂存区,本地分支区,远程分支区

一,全局设置

git init
git config [--global] --list
git config [--global] user.name "name"
git config [--global] user.email "email"

二,查看消息

git status
git log
git log --stat git log
-p file
git log --graph
git log --graph --pretty=oneline --abbrev-commit
git reflog 查看本地命令历史记录
git blame file 显示工作区与暂存区的差异(建议使用图形界面)

git diff [file]显示没有暂存起来的更改
git diff HEAD 显示工作区与单签分支最新commit之间的差异
# 比较暂存区中的文件和上次提交时的差异
$ git diff --cached
$ git diff --staged
$ git diff <commit ID># 查看从指定的版本之后改动的内容
$ git diff <分支名称> <分支名称># 比较两个分支之间的差异
$ git diff <分支名称>...<分支名称># 查看两个分支分开后各自的改动内容
git show [commit]显示某次提交的元数据和内容变化
git show --name-only [commit] 显示某次提交发生变化的文件
git show [commit]:[file]

三,撤销

git reset 重置暂存区与上一次commit保持一致,(暂存区变化清空,工作区不变)
git reset [commit]重置当前分支指针为指定commit,重置暂存区(暂存区变化清空,工作区不变)
git reset --hard HEAD 撤销所有未提交文件的修改内容(暂存区变化清空,工作区变化)
git reset --keep [commit] 重置当前HEAD为指定的commit(暂存区不变,工作区不变)

git checkout -- .
git checkout -- file
git checkout HEAD <file> 撤销未提交文件的修改内容(工作区变化)

四,代码提交

#添加到暂存区
git add file
git add dir 添加指定目录到暂存区,包括子目录
git add [file|dir|.] 添加所有修改,新增的文件到暂存区
git add -u [file|dir|.] 添加所有修改,已删除的文件到暂存区
git add -A [file|dir|.] 添加所有修改,已删除,新增的文件到暂存区

#提交到本地仓库区
git commit
-a
相当于先调用 git add -u
git commit
-m ‘msg‘
git commit --amend -m ‘msg‘ 重做上一次commit,如修改提交信息

 五,分支管理

git branch 查看本地分支
git branch -r 查看远程分支
git branch -a 查看本地和远程全部分支
git branch branch-name 创建分支
git branch -d branch-name 删除分支(已合并)
git branch -D branch-name 强制删除分支(未合并时使用)
git branch -dr remote(origin)/branch-name 删除远程分支

git checkout branch-name 切换到指定分支,并更新工作区暂存区清空
git checkout -b branch-name 创建并切换分支

git cherry-pick commit 选择一个commit合并到当前分支
git merge branch-name 合并指定分支到当前分支
#可能会发生冲突,1,先修改解决冲突,2,git add . ,3git commit -m ‘‘
git merge --no-ff -m ‘msg‘ branch-name

 六,工作区管理

git stash 保存工作现场的变化内容,使工作区还原到HEAD,
git stash pop 还原上一次保存的工作现场,并删除(必须先commit)
git stash list 列出所有保存的工作区
git stash apply stash-id 还原某一个工作区(必须先commit)
git stash drop stash-id 删除某一保存的工作现场

七,远程仓库管理

git remote [-v] 查看远程信息
git remote show [remote] 显示某个远程仓库的信息
git remote add origin-name url 添加远程仓库并起名为origin-name
git clone url 从远程仓库克隆项目和他的整个代码历史

git checkout -b branch-name2 remote(origin)/branch-name1 创建远程仓库某一分支到本地
git branch --set-upstream-to=remote(origin)/branch-name1 branch-name2 创建本地分支与远程仓库分支的链接关系

git pull origin branch-name 拉取远程分支 (需要本地当前分支与远程分支有链接关系)

git push [-u] origin branch-name 推送到远程分支 (需要本地当前分支与远程分支有链接关系)
# -u 第一次使用可以把本地当前分支与远程分支关联起来,以后就不用再带上-u
git push --force 强行推送当前分支到远程仓库,即使有冲突
git push --all 推送所有分支到远程仓库
git push --tags 上传所有标签

八,标签管理

 

以上是关于git命令整理的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段15——git命令操作一个完整流程

整理下git常用命令

代码管理 ,git 命令整理

git 常用命令 整理

GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段

GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段