Git的官方网站:http://git-scm.com
Pro Git book: https://git-scm.com/book/zh/v2
实践:https://learngitbranching.js.org/
本地git与在线库关联步骤
1 | git init |
克隆并创建新分支
1 | git clone 你的github仓库地址 |
合并分支
1 | git checkout master #切换回master分支 |
分支操作
- 查看分支:
git branch
- 创建分支:
git branch <name>
- 切换分支:
git checkout <name>
- 创建+切换分支:
git checkout -b <name>
- 合并某分支到当前分支:
git merge <name>
- 删除分支:
git branch -d <name>
- 删除远程分支:
git push origin --delete <branch-name>
注:如果要丢弃一个没有被合并过的分支,可以通过
git branch -D <name>
强行删除。
贮藏操作
修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
- 当手头工作没有完成时,先把工作现场
git stash
一下,然后去修复bug,修复后,再git stash pop
,回到工作现场( untrack 的文件在stash后依然可见——即依然在工作空间中,不会被保存到stash镜像中,因此对 untrack 文件的修改不能通过stash pop
恢复——因为该命令不暂存未track的文件) - 暂存所有修改——相当于
git add .
和git stash
(包括新添加的文件,即恢复到上一次commit的状态,新添加的文件在stash后不可见——已保存到stash的镜像中,只能通过stash pop
恢复,但是不能添加描述信息message)git stash -a 或者 --all
- 暂存所有修改(同 -a, 但是可以添加message信息,方便区分各个stash镜像,最好使用这个命令)
git stash save -a "some comment" 或者 --all
- 一是用
git stash apply
恢复,但是恢复后,stash内容并不删除,你需要用git stash drop
来删除; - 另一种方式是用
git stash pop
,恢复的同时把stash内容也删了 - 恢复指定id的镜像
git stash apply/pop stash@{id}
使用list
查看id - 查看所有stash的镜像
git stash list
- 删除stash。
git stash drop <stash@{id}>
如果不加stash编号,默认的就是删除最新的,也就是编号为0的那个,加编号就是删除指定编号的stash。 - 清除所有用
git stash clear
注:
git stash save [-p|—patch] [-k|--[no-]keep-index] [-u|--include-untracked] [-a|—all] [-q|—quiet] [message]
-k|--keep-index
表示 stash之后,所有对暂存区的改变会维持不变(比如你之前add 了一个file,提交之后,git status
还是能够在暂存区看到你的 add),如果是—no-keep-index的话,stash之后的状态就是git reset —hard HEAD
。-u|--include-untracked
会把没有记录到的文件也保存下来(比如你新建了一个文件,但是还没有git add,stash也会把这个文件保存下来)-a|—all
会把忽略的文件也保存下来(.gitignore中的)-q|—quiet
终端不打印输出message
一个对这个stash的描述,如果执行git stash list
,我们能够看到这个描述
推送到远程
- 查看远程库信息,使用
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>
可以删除一个远程标签。如果要删除一个远程标签,要先删除本地标签再用此命令删除远程标签
本地重新映射Git远程仓库地址
方法一、通过命令直接修改远程地址
- 进入项目根目录,比如:
vue-patient
git remote
查看所有远程仓库,git remote xxx
查看指定远程仓库地址git remote set-url origin http://0.0.0.0:8080/path/git_project_new.git
方法二、通过命令先删除再添加远程仓库
- 进入项目根目录,比如:
vue-patient
git remote
查看所有远程仓库,git remote xxx
查看指定远程仓库地址git remote rm origin
git remote add origin http://0.0.0.0:8080/path/git_project_new.git
方法三、直接修改配置文件
- 进入
vue-patient/.git
vim config
- 修改如下示例中
[remote “origin”]
的url=
为新的地址即可。
1 | [core] |