GIT学习记录

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

你可能感兴趣的:(git,学习,github)