学习熟悉Git笔记

来源:互联网 发布:java 1603错误代码 编辑:程序博客网 时间:2024/06/05 20:36

Git 命令总结:

初始化Git仓库

命令:git init把这个目录变成Git可以管理的仓库

添加文件到仓库分两步

1.命令git add <文件名>告诉Git,把文件添加到仓库

2.git commit -m命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录

查看工作区状态

git status命令可以让我们时刻掌握仓库当前的状态

查看修改内容

git diff顾名思义就是查看difference,显示的格式正是Unix通用的diff格式

查看历史记录日志

git log命令显示从最近到最远的提交日志,如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数

Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

回退版本命令

git reset --hard 【HEAD^/commitid】命令,【】中可以直接些HEAD版本或提交的commitid的版本号码

查看历史命令记录

Git提供了一个命令git reflog用来记录你的每一次命令,git reflog查看命令历史,以便确定要回到未来的哪个版本


Git命令,git checkout -- file可以丢弃工作区的修改,git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout命令

一种file自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是file已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

删除命令

命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容


要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git

关联后,使用命令git push -u origin master第一次推送master分支的所有内容


查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

git log --graph命令可以看到分支合并图

合并某分支到当前分支:git merge --no-ff <name>  --no-ff表示合并分支时禁用Fast Forward

合并分支时加上--no-ff 参数就可以使用普通模式合并,合并后的历史有分支能看出曾经合并过。而fast-forward合并就看不出曾经合并过


Git还提供了一个stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作

git stash list命令看看隐藏的工作现场

Git把stash内容存在某个地方了,但是需要恢复一下,有两个办法:

一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;

另一种方式是用git stash pop,恢复的同时把stash内容也删了


你可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash,用命令

$ git stash apply stash@{0}

如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除。


  • 查看远程库信息,使用git remote -v

  • 本地新建的分支如果不推送到远程,对其他人就是不可见的;

  • 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;

  • 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;

  • 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name

  • 从远程抓取分支,使用git pull,如果有冲突,要先处理冲突


  • 命令git tag <name>用于新建一个标签,默认为HEAD,也可以指定一个commit id;

  • git tag -a <tagname> -m "blablabla..."可以指定标签信息;

  • git tag -s <tagname> -m "blablabla..."可以用PGP签名标签;

  • 命令git tag可以查看所有标签。

  • 命令git push origin <tagname>可以推送一个本地标签;

  • 命令git push origin --tags可以推送全部未推送过的本地标签;

  • 命令git tag -d <tagname>可以删除一个本地标签;

  • 命令git push origin :refs/tags/<tagname>可以删除一个远程标签。


参考文档地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000