本地仓库与远程仓库建立连接
12345678910git initgit addgit commit -m-----------本地仓库与远程仓库建立连接git remote add origin(仓库名字) https:// ....git remote set-url origin git@github //更改远程仓库地址的链接,推荐用SSH协议---------本地分支与远程分支建立连接git push -u origin master (第一次都要写-u)
返回历史版本
在Git中,用HEAD
表示当前版本,上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,当然往上100个版本写100个^
比较容易数不过来,所以写成HEAD~100
。
|
|
git status
命令可以让我们时刻掌握仓库当前的状态
git diff
顾名思义就是查看difference
git diff HEAD -- fileName
查看工作区 和 版本库 里面最新版本中的区别,(修改后但是没有add和commit)
撤销
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file
。
git checkout
其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file
,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,使用命令git reset --hard commit_id
,不过前提是没有推送到远程库。
删除
工作区删除文件rm xxx,会导致工作区和版本库(已经add或者更进一步的已经commit)不一致,用git status可以查看到,如果要同时删除版本库中的xxx文件,用git rm xxx(此时已经在版本库中删除),然后git commit -m “remove xxx”来提交最新的状态。
如果想要在工作区恢复:
- 已经add,但是未commit,可以
git checkout -- xxx
(即暂存区覆盖掉工作区) - 已经commit,可以先
git reset HEAD xxx
,然后git checkout -- xxx
创建分支与合并
git checkout -b dev
创建并切换到分支dev上1234# 等同于git branch dev # 创建分支git checkout dev # 切换分支git branch # 查看当前分支解决冲突
当分支提交完,切换到主分支master并提交完
git merge dev
合并dev分支到当前的分支(快速合并:Fast-forward)- 自己打开文件然后修改冲突文件,修改完后在
git add
和git commit
git merge --no-ff -m"xxxx" dev
:不使用快速合并,修改冲突文件并提交
git log --graph
可以查看分支合并图git branch -d dev
删除分支devgit branch -D dev
强行删除还没有合并过的分支(一般情况下分支只有合并后才能被删除)
- 自己打开文件然后修改冲突文件,修改完后在
隐藏分支
如果分支上还没有commit,那么可以用
git stash
把修改的内容隐藏起来去做其他的事情用
git stash list
查看隐藏的列表用
git stash pop
恢复之前隐藏的内容,同时把stash的内容也删除了123#相当于以下两个步骤git stash apply 恢复git stash drop 删除stash的内容
远程分支
git remote
:显示远程仓库的信息,远程仓库默认名为origingit remote -v
:显示更加详细的远程仓库信息
推送分支:
git push origin master
:把本地的master分支推送到远程分支
git push origin dev
:把本地的dev分支推送到远程抓取分支:别人clone你的git文件后,一般只能看到本地master分支,看不到其他分支,此时需要创建远程origin的dev分支到本地,即
git checkout -b dev origin/dev
,现在修改后可以用上述步骤git push origin dev
来推送分支了如果你也修改了dev想要推送,此时需要解决冲突后再推送
先制定本地dev分支与远程origin/dev分支的链接
git branch --set-upstream dev origin/dev
然后
git pull
试图与本地的dev合并,但是你也修改了dev分支,所以会有冲突,所以先解决冲突,然后本地提交然后
git push origin dev
创建标签
- 创建标签:切换到需要打标签的分支上,用
git tag <name>
,默认的标签是打在最新提交的commit上面 - 可以找到历史commit,然后在上面打标签
git tag v1.0 6224937
git tag -a <tagname> -m "blablabla..."
可以指定标签信息,a是标签名,m是文字说明git tag
查看标签,git show <tagName>
查看详细的标签信息,包括时间,上面m的文字说明
操作标签
删除本地标签
git tag -d v1.0
推送某个标签到远程
git push origin v1.0
一次性推送
git push origin --tags
从远程删除,先删除本地标签,再推送删除
git tag -d v0.9
git push origin :refs/tags/v0.9
忽略特殊文件
在Git工作区的根目录下创建一个特殊的.gitignore
文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。这时输入git status,不会显示.gitignore
里面的文件为提交等信息
配置文件
在.gitconfig文件里面配置
|
|
设置公钥
|
|