1.git工作区、暂存区、本地仓库、远程仓库
命令
操作
git add '文件名/文件夹名'
添加文件到暂存区
git commit -m 'message'
提交暂存区文件到仓库区
git push
上传到远程仓库
git clone 'url'
下载项目
git fetch
下载远程仓库的变动,不会自动合并和修改,用户在检查了之后决定是否合并到工作区
git pull
从远程仓库拉取代码并合并到本地的版本,自动合并修改
git checkout
切换分支
2.git pull
git pull
从远端拉取代码,更新我们的仓库。git pull --merage的简写。
git pull --rebase
将远程的最新内容拉到本地库之后直接移到到工作区
git rebase
将提交到某一分支上的所有修改都移至另一分支上。即如果在B分支上使用git rebase A就是将B分支上的修改都变基(移到)A分支上
git pull但是不覆盖修改的代码
3.git commit
git commit
git commit --amend
修改你最近的一次提交
git commit -a
提交工作区自上次提交之后的变化,直接到仓库区
git commit -v
提交时显示所有的diff信息
git commit --amend -m [message]
使用一次新的提交,替代上一次提交(如果代码没有任何变化,则用来改写上一次提交的信息)
git commit --amend
重做上一次提交且更改提交信息
git commit --amend --no-edit
补充上一次提交且不更改提交信息
4.git stash
git stash
隐藏工作现场。保存当前的工作进度,把暂存区和工作区的改动保存到一个未完结变更的堆栈中;执行完这个命令后,可以随意切换分支,git stash 是本地的不会上传到服务器上
git stash save 'message...'
添加本次草稿的注释
git stash list
查看所有的隐藏,结果为:
git stash apply n
重新显示标识为n的隐藏,n为stash list结果里面的0、1、2、3
git stash drop n
删除标识为n的隐藏。git apply恢复隐藏之后,需要手动删除list列表的记录
git stash pop
恢复最新的进度到工作区
git stash pop stash@[stash_id]
恢复指定的进度到工作区
5.git reset
git reset
删除已跟踪的文件,将已commit的回退
git reset --hard
彻底回退到某个版本,撤销工作区所有未提交的修改内容
git reset --mixed
git reset 默认方式,等同于git reset
修改内容还在,变成未add的状态,
git reset --soft
修改内容还在,变成已add未commit状态
6.git clean
git clean 用于删除工作目录中没有被tracked的文件
git clean -nxdf
查看要删除的文件及目录,确认无误后再使用下面的命令进行删除
git clean -n
不实际删除,只是进行演练,展示将要进行的操作,告诉你那些文件会被删掉
git clean -f
删除文件
git clean -i
显示将要删除的文件
git clean -d
递归删除目录及文件(未跟踪的)
git clean -q
仅显示错误,成功删除的文件不显示
7.git diff
git diff 查看修改内容
git diff
默认查看的就是工作区和暂存区之间所有文件的差异
git diff -- 文件名
查看具体某个文件在工作区和暂存区之间的差异
8.git log
git log
查看提交历史
git log --oneline
简化git log的默认输出
9.git cherry-pick
git cherry-pick 'id' 摘取某个commit_id到当前分支下,一个分支摘取另一个分支的某个commit提交
10.解决提交冲突
- git log 查看历史版本
- git reset --hard '版本id' 回退到上一个版本
- git pull --rebase 解决冲突
- git fetch 将自己提交的代码拉下来,解决出现的冲突
- git add '文件/文件夹' 重新add
- git commit 不需要再写-m
- git push
11.合并两次提交
- 在第一次提交之后继续修改工作区文件
- git add 将工作区提交到暂存区
- git commit --amend --no-edit 合并两次提交且不修改提交说明
或:git commit --amend 修改提交说明
- git push
12.git commit --amend 修改提交说明
修改最近一次提交的说明
i 进入编辑
esc 退出
:wq 退出该文件并保存
13.放弃本地修改,使用服务器代码覆盖本地代码
git fetch --all
git reset --hard origin/master
git pull
14.git revert 和 git reset区别
git reset会修改版本历史,会弄丢一些版本历史
而git revert 是根据commit逆向生成一个新的commit,版本历史不会被破坏
15.git commit提交信息写错了,但是还没有push,修改提交信息
git commit --amend --only 打开默认编辑器,在这里可以编辑信息
git commit --amend --only -m 'xxxxxx' 将信息修改成xxxxxx
版权归原作者 向飞飞(码龄1年) 所有, 如有侵权,请联系我们删除。