git学习

7/25/2017 9:55:35 AM @Jzedy

git学习

请自行安装^_^

将文件添加到仓库

git add 文件名

将文件提交到仓库

git commit -m "注释"

上述两个命令可以将文件添加到本地仓库中,git add 可以连续执行多次,然后一次git commit 将git add 的文件提交

查看状态

git status

可以告诉你位于哪个分支,同时显示当前是否有已经修改的文件同时是否已经提交了和是否文件被跟踪

未被跟踪的文件可以使用git add命令

对于已经被跟踪了的文件同时被修改了可以使用git diff 文件名查看修改的内容

查看日志

git log

使用git log 可以查看提交日志
git log --pretty=oneline可以美化显示

版本回退

版本回退需要知道回退到哪个版本,当前版本为HEAD,上一个版本为HEAD^
上上一个版本为HEAD^^,或者上一百个版本是HEAD~100,同时也可以以版本号标识
不过在回到上一个版本后对于git log查看也是显示到上一个版本 即最后版本是看不见的,此时可以使用git reflog查看你对版本的所有操作,在这可以看见所有的版本号,想回退到哪个版本就使用git reset --hard 版本号(版本号不用写完 写前几位就好了)

总结:回到以前,可以先git log再回退
回到未来,可以先git reflog在操作。目测对于连接了远程仓库的git log会显示所有的人对远程仓库的操作,而git reflog只是针对自己对版本的操作(有待研究)

暂存区

自己在使用的是工作区,版本库:工作区里有个隐藏目录“.git”,这个是Git的版本库,版本库里存放了暂存区(stage),分支信息,log等

git add 就是将文件添加到暂存区

git commit 将暂存区的文件提交到版本库

撤销修改

  1. 撤销工作区的修改:使用git checkout -- 文件名

    –>对于文件未添加到暂存区的,git checkout -- <file>就是将工作区的文件撤销修改为何版本库一样的状态

    –>对于文件添加到暂存区的,即已经git add <file>的,使用git checkout -- <file>就是将工作区的文件撤销修改到为暂存区一样的状态

  2. 撤销暂存区的修改:使用git reset HEAD <file>

    即将文件从暂存区撤销到工作区

总结:对于文件未添加到暂存区的,撤销修改使用git checkout -- <file>,对于文件添加到暂存区的,先git reset HEAD <file> 将文件撤出暂存区,然后git checkout -- <file>撤销修改,对于文件提交到版本库的,版本回退(git reset --hard 版本号

删除文件

对于版本库中确实要删除的使用git rm <file>,然后git commit -m "msg",如果工作区是误删(就是普通的删除文件),使用git checkout -- <file>恢复

分支练习

创建分支

`git branch <branch_name>`

切换分支

`git checkout <branch_name>`

创建并切换分支

`git checkout -b <branch_name>`

查看所有分支及单前所在分支

`git branch`

查看远程分支

`git branch -a`

删除分支

`git branch -d <branch_name>`

合并某分支到当前分支

`git merge <branch_name>`

当文件有冲突时候无法自动merge时候,需要先解决冲突然后git add +git commit后再git merge`

(测试当自动合并不行时候,git diff会显示两者不同地方,Git用<<<<<<<,=======,>>>>>>>标记出不同分⽀的内容)

`git log --graph`显示git log 的分支合并图`git log --graph --pretty=oneline --abbrev-commit`更美观

多人协作

推送分支到远程

本地`git checkout -b dev`后`git push origin dev`

查看远程库信息

`git remote `

`git remote -v`查看更详细的信息,得到如下信息

origin  git@github.com:JZedy/gitLearn.git (fetch)(可以抓取)
origin  git@github.com:JZedy/gitLearn.git (push)(可以推送)

当他人git clone该项目时候,默认只有master这个分支,若需要在dev上工作则需要git checkout -b dev origin/dev就可以在dev分支上继续修改并push到远程,若是没有将本地dev分支与远程origin/dev分支链接,使用命令git branch --set-upstream dev origin/dev若提示--set-upstram被弃用了可以git branch --set-upstream-to origin/dev 达到相同效果
对于有冲突的文件git push时会提醒有冲突同时提醒你git pull对于无法自动合并的提示你冲突的文件,此时你可以git diff查看冲突,修改后git commit->git push

标签管理

发布一个版本时,通常会打上一个标签。以后取某个标签就是取打标签是的历史版本出来.
先切换到需要打标签的分支上,然后git tag <tag>,如git tag v1.0,对于需要打标签在之前的某一个版本时,可以git tag <tag> <版本号>

使用git show <tag>查看便签信息,对于需要对标签说明的git -a <tag> -m <msg> <版本号>

删除标签

`git tag -d <tag>`

标签推送到远程

标签打上后自是在本地,要推送到远程使用git push origin <tag>或者一次性推送所以未被推送的标签git push origin --tags

删除远程标签

先在本地git tag -d <tag>git push origin :refs/tags/<tag>

原文地址:https://www.cnblogs.com/JzedyBlogs/p/9368663.html