Git基本命令记录

版本控制软件Git.

一、创建版本

初始化一个Git仓库git init
添加文件到Git仓库,分两步:

  • 可反复多次使用,添加多个文件git add <file>
  • git commit -m <message>

二、版本回退

  • 查询历史
    git log
  • 查询未来历史
    git reflog
  • 回退到历史
    git reset --hard commit_id

三、查询版本对比

  • 查看当前没有add 的内容修改git diff
  • 查看已经add 没有commit 的改动git diff --cached
  • 查看当前没有add和commit的改动git diff HEAD/git status
  • 查看任意两个版本之间的改动git diff 版本号码1 版本号码2
  • 比较两个版本号码的src 文件夹的差异git diff 版本号码1 版本号码2 src

四、撤销修改

git checkout -- file

  • 一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
  • 一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次git commitgit add时的状态。
回退到工作区 git reset HEAD filename

五、删除文件

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

六、同步github

git remote add origin https://github.com/xiaoran6822/learngit.git git push -u origin master git push origin master

七、分支

查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
查看分支合并图:git log --graph
非fast forward 合并:git merge --no-ff -m "merge with no-ff" dev
存储: git stash
查询储存位置:git stash list
获取存储并删除:git stash pop
强行删除当前版本:git branch -D feature-vulcan
查看远程库信息,使用git remote -v

##本地常用
git add . (注:别忘记后面的.,此操作是把Test文件夹下面的文件都添加进来)
git commit -m “提交信息” (注:“提交信息”里面换成你需要,如“first commit”)
git push -u origin master

从本地推送分支,使用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 rebase

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

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

命令git tag可以查看所有标签
删除标签:git tag -d v0.1

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

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

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

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