shell命令
在windows系统中以下命令要在Git Bash中使用
-
pwd:获取当前路径
-
ls:获取当前路径下的所有文件及文件目录
-
ls -la:不仅可以获取当前的文件及文件目录,还可以获取隐藏的文件及目录。
-
cd .:当前路径
-
cd . . .. ..:返回上一级目录
-
cd ~:返回默认目录
-
cd /:返回根目录
-
mkdir:创建文件夹
-
touch:创建文件
-
rm:删除文件
-
rm -rf:删除文件夹(文件夹中的文件一并删除)
-
向文件中追加文字。格式为
echo [需要追加的内容] >> [文件名称]
-
查看文件里面的内容。语法为
cat [文件名]
-
clear:清空命令窗口
git项目管理相关命令
-
查看git相关配置:
git confit --list
可以查看姓名和邮箱 -
git init
创建一个空的仓库或者重新初始化一个已经存在的仓库。会在当前的目录下生成.git文件。
-
git init [dir_name]
创建一个空仓库或者初始化一个已经存在的仓库,先创建一个文件夹dir_name,再创建.git
-
git add [filename]
将filename追踪到仓库
-
git add .
当前目录下所有未追踪的文件都追踪到仓库中
-
git status
展示当前分支的状态;当前分支可以分为四种状态:未追踪、已修改、已暂存、已提交。
-
git commit
将文件提交到仓库,在提交之前先要将文件追踪到仓库。
-
git commit -m
将追踪的文件提交到仓库,-m后面添加提交说明。
-
git commit -am
相当于先git add,再git commit
查看远程仓库信息
-
git remote
查看当前项目配置的远程仓库,并列出远程仓库的简短名称。
-
git remote -v
查看远程仓库的地址。
-
git remote show [remote name]
显示远程仓库的详细信息
放弃修改命令
- git checkout .
放弃工作区的所有修改。 - git checkout – filename
放弃指定文件的修改,恢复到上一次的状态。 - git checkout -f
放弃工作区和暂存去区的所有修改。
log追踪
- git log
查看每次提交的记录。 - git log -p -2
查看最近两次提交的内容的差异。 - git log --author
- git log --oneline
用一行显示每次提交的说明。 - git log --graph
用图的方式显示每次提交的记录。 - git log --pretty=oneline
- git log --pretty=format
查看修改文件前后的区别
- git diff
- git diff --staged
文件忽略
- List item
撤销追踪与文件还原
- git reset HEAD [filename]
撤销当前文件的追踪。 - git checkout – [filename]
版本回退
- git reset --hard HEAD^
回退到上一个版本 - git reset --hard HEAD^^
回退到上上个版本 - git reset --hard HEAD [hash号]
回退到指定hash的版本 - git reflog
指针理解
回到旧版本
- git log
- git checkout [hash] - - [filename]
- git checkout [hash] - - .
建立切换删除分支
-
git branch
罗列出当前有哪些分支。前面的星号表示当前在哪一个分支。
-
git branch [name]
创建一个新的分支
-
git checkout [branch name]
切换分支
-
git checkout -b [branch name]
创建并切换分支
-
git branch [name] -d
删除分支 -
git branch [name] -D
强行删除分支
合并分支
- git merge [branch name]
合并分支
解决合并时发生的冲突
- git merge [branch name]
- git status
- git merge --abort
撤销合并 - 手动选择正确内容
- git commit
解决远程仓库代码与本地仓的冲突
方法1
本地的修改还未提交本地仓库。
步骤:
- git stash 将本地有所修改都存入暂存区。
- git stash list 查看暂存区是否保存内容。
- git pull 从远程从库拉取内容
- git stash pop stash@{0} 还原暂存区的内容,根据输出信息确定有没有需要处理的冲突,如果有需要处理的冲突,进入文件处理冲突。
- git stash drop stash@{0} 删除暂存区的内容。
方法2
本地的修改已经提交到本地仓库
步骤:
- git pull origin master将远程仓库的内容拉取到本地仓库
- 进入有冲突的文件手动处理冲突
- 将处理冲突后的修改提交到本地仓库
git add .
git commit -m “提交日志” - git push 将本地仓库内容推送到远程仓库
方法3
本地的修改已经提交到本地仓库
步骤:
- git fetch origin master 将远程仓库的内容拉取到本地仓库
- git merge origin/master 将远程仓库的内容合并到本地仓库
- 进入有冲突的文件手动处理冲突
- 将处理冲突后的修改提交到本地仓库
git add .
git commit -m “提交日志” - 将本地仓库推送到远程仓库
版本回退
- 回到上一个版本的命令为:
git reset head~
注意:一个~
表示回退到上一个版本,两个~~
表示回退到上两个版本。那么要回到到上5个版本怎么写?回退到上5个版本的写法为:git reset head~5
另外:git reset
有三个参数:--hard
表示回退版本库,暂存区,工作区,示例命令git reset --hard head~
;--mixed
表示回退版本库,暂存区,该参数为默认参数,示例命令git reset --mixed head~
;--soft
表示回退版本库,示例命令git reset --soft head~
。 - 指定ID回退
语法为:git reset [参数] 版本ID
- 如果回退版本错误,想撤销上次的回退操作怎么办?
可以通过命令git reflog
查看所有的提交记录,然后通过git reset --hard [ID]
回到指定版本。
查看不同
- 语法
git diff
,该命令查看的是文件在三个区(工作区、暂存区、版本库)中不同。
- 比较工作区与最新提交之间的不同,语法为:
git diff head
- 比较连个历史提交的不同,语法为:
git diff [ID1] [ID2]
- 比较仓库和暂存区的不同,语法为:
git diff --cached [ID]
从远程仓库拉取代码到本地
git clone [仓库地址] //默认拉取master分支上的代码
git clone [仓库地址] -b 分支名 //
查看最新提交的修改
git show --stat
git rebase的使用方法
git rebase的使用方法
git rebase详解
rebase与merge的区别
参考阅读
廖雪峰git教程
https://www.cnblogs.com/michael-xiang/p/5026602.html