- git remote 查看远程仓库名 默认是 origin
- git remote -v 列出详细信息,在每一个名字后面列出其远程url
- git remote show origin 显示远程仓库信息
- 可以在 .git/config 文件中隐藏文件查看 相关信息
- 常用命令
- clone步骤
- 下载clone指定分支tag的代码
- 本地切换新分支步骤
- 新建分支步骤
- 删除分支步骤
- git fetch 和 git pull 区别
- 暂存本地文件,拉取远程代码
- 扩展 git stash
- 提交步骤
- git pull 之后撤销步骤
- git add 撤销步骤只是 git add
- git add之后又git commit 撤销步骤
- 小提示
git remote 查看远程仓库名 默认是 origin
git remote
origin
git remote -v 列出详细信息,在每一个名字后面列出其远程url
git remote -v
origin git@github.com:pil/myStudy.git (fetch)
origin git@github.com:pil/myStudy.git (push)
git remote show origin 显示远程仓库信息
* 远程 origin
获取地址:git@github.com:pil/myStudy.git
推送地址:git@github.com:pil/myStudy.git
HEAD 分支:master
远程分支:
master 已跟踪
为 'git pull' 配置的本地分支:
master 与远程 master 合并
为 'git push' 配置的本地引用:
master 推送至 master (最新)
可以在 .git/config 文件中(隐藏文件)查看 相关信息
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[remote "origin"]
url = git@github.com:pil/myStudy.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
常用命令
git branch查看当前分支(会把搜有的本地分支列出来,当前的分支使用* 分支名(如 * master)标出git branch -a查看所有分支
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
git branch -r查看远程分支
origin/HEAD -> origin/master
origin/master
git status查看当前本地分支和远程分支的区别状态
位于分支 master
您的分支与上游分支 'origin/master' 一致。
尚未暂存以备提交的变更:
(使用 "git add <文件>..." 更新要提交的内容)
(使用 "git checkout -- <文件>..." 丢弃工作区的改动)
修改: .gitignore
未跟踪的文件:
(使用 "git add <文件>..." 以包含要提交的内容)
../.DS_Store
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
git checkout -- a.js丢弃本地文件的改动,多个文件逗号隔开
clone步骤
git clone [git@github.com:pil/myStudy.git](git@github.com:pil/myStudy.git)从远程 clone 代码,默认 master 分支。git checkout daily/0.0.1如果已有分支,切换到你想要的分支
下载clone指定分支tag的代码
- 命令:
git clone --branch [tags标签] [git地址]或者git clone --b [tags标签] [git地址]- 例如:
git clone -b 1.4.1 https://github.com/jumpserver/coco.git
本地切换新分支步骤
- 获取并更新远程的全部代码到本地
git fetch -allgit pull origin daily/0.0.1git checkout daily/0.0.2
新建分支步骤
git checkout -b daily/0.0.2新增并切换到当前分支git push --set-upstream origin daily/0.0.2追踪新分支提交
删除分支步骤
假如我现在在daily/0.0.7分支上,想删除daily/0.0.7分支
- 先切换到别的分支:
git checkout daily/0.0.6- 删除本地分支:
git branch -d daily/0.0.7- 如果删除不了可以强制删除,
git branch -D daily/0.0.7- 有必要的情况下,删除远程分支:
git push origin --delete daily/0.0.7- 在从公用的仓库fetch代码:
git fetch origin daily/0.0.7:daily/0.0.7- 然后切换分支即可:
git checkout daily/0.0.7
git fetch 和 git pull 区别
git fetch相当于从远程获取最新到本地,不会merge
常用的步骤
- 1.1
git fetch orign master将远程仓库的master分支下载本地当前branch中- 1.2
git log -p master ..origin/master比较本地的master分支和origin/master分支的差别- 1.3
git merge origin/master进行合并
或者使用下面的步骤
- 1.1
git fetch origin master:tmp从远程仓库master分支获取最新,在本地建立tmp分支- 1.2
git diff tmp将当前分支和tmp对比- 1.3
git merge tmp合并tmp分支到当前分支- 1.4
git branch -d temp删除分支temp
git pull相当于从远程获取最新版本并merge到本地 tip: 在实际使用中,git fetch更安全一些。
暂存本地文件,拉取远程代码
写代码时,忘记git pull远程分支,直接写,当想再次git pull时,提示error: Your local changes to the following files would be overwritten by merge:
两种方式(根据需求选择):
- 保留本地修改
git stash保存当前工作进度git pull origin master拉取远程代码git stash pop恢复最近的进度到工作区
- 不保留本地修改
git reset --hard完全覆盖本地代码,采用最近一版的服务端代码git pull origin master拉取代码
扩展 git stash
git stash 保存当前工作进度,也可以使用 git stash save 'message' 添加一些注释
git stash list 显示保存进度的列表
git stash pop [--index] [stash_id]
通过 git stash pop 命令恢复进度后,会删除当前进度
git stash pop 恢复最新的进度到工作区。( git 会默认把工作区和暂存区的改动都恢复到工作区
git stash pop --index 恢复最新的进度到工作区和暂存区。(尝试将原来暂存区的改动还恢复到暂存区)
git stash pop stash@{n} 恢复指定的进度到工作区,stash_id 是通过 git stash list 命令得到的
git stash apply [--index] [stash_id]
除了不删除恢复的进度外,其余和 git stash pop 命令一样
git stash drop [stash_id]
删除一个存储的进度,如果不指定 stash_id,会默认删除最新的进度
git stash clear
删除所有存储的进度
提交步骤
- 提交前本地先拉取
git pull origin mastergit add .//暂存本地所有修改的文件 也可以git add /src/a.js b.js空格隔开文件名git commit -m 'bugfix'// 提交当前暂存的代码及提交信息git push origin master// 推送到远程仓库
git pull 之后撤销步骤
git reflog查看历史变更记录
32f5aec (HEAD -> master, origin/master, origin/HEAD) HEAD@{0}: pull: Fast-forward
299758f HEAD@{1}: commit: vueOther
44e4e8d HEAD@{2}: commit: mixin
08071de HEAD@{3}: pull: Fast-forward
6eed671 HEAD@{4}: commit: update
15ef3df HEAD@{5}: pull: Fast-forward
- 使用
git reset --hard HEAD@{n}(n是你要回退到的引用位置)回退 上面可以使用git reset --hard 44e4e8d
git add 撤销步骤(只是 git add)
git reset HEAD如果后面什么都不跟,就是把上一次的git add 全部撤销git reset HEAD XXX/XXXX/XXX.js精确撤销某一个确定的文件
git add之后又git commit 撤销步骤
git log查看最近的提交节点
commit 244d1c75709d4e6b20e789282fc51238d4ecfd83 (HEAD -> master, origin/master, origin/HEAD)
Author: qianliyan <liyan.xxxx.org>
Date: Wed Jul 31 15:19:22 2019 +0800
git.md init
commit 019d6bd7a69bca6edd9779663f6ac5b0919cfc69
Author: qianliyan <liyan.xxxx.org>
Date: Wed Jul 31 15:16:45 2019 +0800
git.md init
commit 5aaf1420eceb4b017fab31d78c01e8acd719ec2d
Author: qianliyan <liyan.xxxx.org>
Date: Wed Jul 31 15:13:40 2019 +0800
git reset commit_id(应该是你的最近的上一个commit_id) 回退到上一个提交的节点,代码还是自己修改过的git reset -hard commit_id(应该是你的最近的上一个commit_id) 回退到上一个提交的节点,代码也发生了改变,变成上一次的
小提示
如果要是提交了之后 还原之前已经提交的修改,此次操作之前和之后的 commit 和 history 都会被保留,并且把这次撤销作为最新一次的提交
git revert HEAD撤销前一次commit
git revert HEAD^撤销前前一次commit
git revert commit_id(撤销指定的版本,撤销也会作为一次提交进行保存)
git revert是提交一个新的版本,将需要的revert版本的内内容再反向修改回去,版本会递增,不会影响之前的提交。
HEAD就是当前活跃分支的游标
git reset的作用是修改HEAD的位置,即将HEAD指向的位置改变为之前存在的某个版本
如果想恢复到之前某个提交的版本,且那个版本之后提交的版本我们都不要了,就可以用这种方法
git revert的作用通过反做创建一个新的版本
如果我们想恢复之前的某一版本(该版本不是merge类型),但是又想保留该目标版本后面的版本,记录下这整个版本变动流程,就可以用这种方法。