git关键字解释
HEAD 当前版本的指针,当切换本地版本的时候会快速指向指定版本文件
master git为我们创建主分支
origin 远程仓库的名称
git文件的四种状态
Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.
Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件
Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改
Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存, 文件状态为Modified
checkout -》切换
git checkout – [file-name]
最好加–,没有的话就把它当作切换分支看待,切换到另一个分支了,如果没有这个分支也会把它当作文件执行
git checkout [branch] 切换分支
git checkout -b [new-branch-name] 创建并切换分支
switch -》切换
git switch -c [branch-name] 创建新分支并切换到该分支
git switch [branch-name] 切换到已有分支
branch -》分支
git branch [branch-name] 创建分支
git branch 查看当前分支
git branch -a 查看本地和远程的所有分支
git branch -r 查看远程所有分支
git branch -d [branch-name] 删除一个分支
git branch -D [branch-name] 强制删除一个没有合并的分支
git branch --set-upstream-to=origin/[branch-name] [branch-name] 把本地分支和远程分支进行连接
push -》推送
git push 将文件添加到远程仓库
git push -f 强制提交,当我们本地reset到旧的版本时,然后普通push会被拦截,因为此是本地HEAD指向比远程库还要旧
git push origin [branch-name] 推送当前本地分支到指定远程分支
**stash -》**隐藏
git stash 隐藏当前工作的修改
- 如果不隐藏自己修改的半成品代码,就会发生切换到别的分支后,将然后自己的半成品代码带入其他分支,这样就发生很多不必要的麻烦。
git stash save message 执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别。
git stash list 查看隐藏的工作信息列表
git stash drop 删除隐藏的工作信息
git stash pop 恢复隐藏的工作信息,同时删除隐藏的工作信息
git stash apply [stash@{0}] 恢复指定的隐藏工作信息,但是不会删除隐藏的工作信息
remote -》远程地址
git remote add origin 远程地址 关联远程仓库
git remote 查看本地添加了哪些远程分支地址
git remote -v 查看本地添加了哪些远程分支地址更详细信息
git remote remove origin 删除本地指定的远程地址
git 切换远程地址
git remote -v 查看当前的git地址
git remote set-url origin <新的远程仓库地址>
切换完之后 再次输入 git remote -v 查看是否切换成功。
git reset和git revert都是属于重新恢复工作区以及远程提交的方式,但这两种操作有着截然不同的结果:
- git reset是将之前的提交记录全部抹去,将 HEAD 指向自己重置的提交记录,对应的提交记录都不复存在;
- git revert 操作是将选择的某一次提交记录 重做,若之后又有提交,提交记录还存在,只是将指定提交的代码给清除掉。
一、未使用 git add 缓存代码时:
放弃单个文件修改,注意不要忘记中间的"–",不写就成了检出分支了!
git checkout – filepathname
放弃所有的文件修改
git checkout .
二、已经使用了 git add 缓存了代码
可以使用 git reset HEAD filepathname (比如: git reset HEAD readme.md)来放弃指定文件的缓存,放弃所有的缓存可以使用 git reset HEAD . 命令。
三、已经用 git commit 提交了代码
可以使用 **git reset --hard HEAD^ 来回退到上一次commit的状态。
此命令可以用来回退到任意版本:git reset --hard commitid **
git回退版本
git reset --hard
git reset --hard
git reset
git push origin HEAD --force
一、git忽略 .gitignore
1、清理缓存文件
git rm -r --cached .
2、添加文件
git add .
**3、**将暂存区所有文件添加到本地仓库
git commit -m “update .gitignore”
**4、推送到远端 -u 第一次使用之后,**后面的提交就直接可以 git push
git push -u origin master
二、已创建项目上进行建git库
1、初始化git仓库
git init
2、将当前目录下的文件添加到仓库(缓冲区)
git add .
3、提交到本地仓库
git commit -m “init project”
4、与远程仓库关联
git remote add origin 远程仓库地址
5、推送到远程仓库
git push -u origin master
- 对于error: failed to push some refsto‘远程仓库地址’
- 1 使用如下命令
git pull --rebase origin master
2 然后再进行上传:
git push -u origin master
三、服务器创建dev分支
1、切换到master分支
git checkout master
2、拉取master最新代码到本地master分支上
git pull
3、基于master分支创建dev并切换到dev分支上
git checkout -b dev
4、把新建的dev分支推送到远程端
git push origin dev
5、将本地分支与远程分支进行连接
git branch --set-upstream-to=origin/dev dev
6、将远端dev分支拉取到本地dev
git pull