《命令行》Git

创建版本库

git clone 克隆远程版本库

git clone xxx.git 克隆文件
git clone xxx.git <dir> 克隆文件到dir文件目录下
git clone -b [new_branch_name] xxx.git 克隆并切换到新分支上

git init 初始化本地版本库

git init 在当前目录下面创建了一个.git 目录(隐藏文件夹)

修改和提交

git status 查看修改状态
git diff 比较当前所有文件和暂存区文件差异

git diff <file> 比较当前特定文件和暂存区文件差异
git diff <commit-id1> <commit-id2> 比较两次提交差异
git diff <branch1> <branch2> 比较两个分支差异
git diff --staged 比较暂存区和版本库差异
git diff --cached 比较暂存区和版本库差异
git diff --stat 仅仅比较统计信息

git show 显示最后一次 commit 修改的内容

git show commit-id 显示某次 commit-id 的修改

git add 保存文件到暂存区

git add <file> 保存指定的文件
git add . 保存所有修改过的文件
git add -A 保存所有修改过的文件(修改、新增、删除)
git add -u 保存修改和删除(不包括新建文件)

git mv <old> <new> 文件改名
git rm

git rm <file> 从版本库中删除文件
git rm --cached <file> 从版本库中停止跟踪文件,但不删除

git commit

git commit –m “comment” 提交所有更新过的文件
git commit --amend 修改最后一次提交

查看提交历史

git log 查看提交历史

git log -p 查看最近 p 次提交
git log -p -n 查看最近 n 次详细修改内容的 diff
git log <file> 查看指定文件的提交历史
git log --author=“author”  查看某人提交记录
git blame <file> 以列表方式查看指定文件的提交历史

撤销

git checkout 用于切换分支或恢复工作树文件

git checkout <file> 撤销指定的未提交到暂存区文件的修改内容
git checkout HEAD <file> 同上
git checkout <branch> 切换分支
git checkout -b <branch> 创建并切换到该分支

git reset 撤销

git reset --mixed 取消 commit + add
git reset --soft 取消 commit
git reset --hard 取消 commit + add + local working
git reset --hard <commit> 撤销到工作目录中某个提交的位置
git reset --hard HEAD 撤销工作目录中所有未提交文件的修改内容
git reset --hard HEAD~n 撤销工作目录中n个提交以前
git reset <file> 从暂存区恢复到工作文件
git reset -- . 从暂存区恢复到工作文件

git revert

git revert HEAD 撤销最近的一个提交
git revert <commit> 撤销指定的提交
git revert --abort 中断本次revert(冲突没解决需要回滚时执行)
git revert --continue 继续revert(一般revert冲突解完执行)

分支与标签

git branch 分支

git branch 查看所有本地分支
git branch -a 查看所有分支(本地+远程) 
git branch <new-branch> 创建本地新分支
git branch -b <new-branch> 创建本地分支并切换到此分支
git branch -m <src-branch> <dest-branch> 本地分支重命名
git branch -d <branch> 删除本地分支
git push origin --delete <branch> 删除远程分支

git tag 列出所有本地标签

git tag <tag_name> 基于最新提交创建标签
git tag -d <tag_name> 删除标签

合并与衍和

git merge 合并指定分支到当前分支

git merge <branch> 不显示 feature,只保留merge节点
git merge --no-ff <branch> 保存你之前的分支历史
git rebase <branch> 衍合指定分支到当前分支

远程操作

git remote 列出所有 remote 的别名

git remote -v 查看远程版本库信息,列出 url
git remote show <remote> 查看指定远程版本库信息
git remote rm [name] 删除一个 remote
git remote rename [old-name] [new-name] 重命名 remote
git remote add <remote> <url> 添加远程版本库

git fetch 从远程获取代码

git fetch <remote> 从远程获取代码

git pull

git pull <remote> <branch> 下载代码及快速合并
pull = fetch + merge

git push

git push <remote> <branch> 上传代码及快速合并
git push <remote> : <branch/tag-name> 删除远程分支或标签
git push --tags 上传所有标签
git push origin branch_name 将本地分支同步到远端
git push origin :branch_name 删除远程分支,慎重使用

帮助

git help 帮助

git help <command> 显示 command 的 help

实战

撤销一个add
git reset HEAD . 撤销所有的文件
git reset HEAD -filename 撤销某个文件

撤销一个commit(未PUSH)
git log -5 (找到你要撤销的commit)
git reset --hard commitid(你要撤销的上一个commit_id)

撤销一个commit (已经PUSH)
将 A 分支上的若干 commit-id 提交到 B 分支上
git log:A 分支上找到若干 commit-id
git checkout B :切换到 B 分支
git cherry-pick <commit-id> :pick 到 B 分支上
git commit -c <commit-id> :若有冲突 则commit -c
git push B :若无冲突则直接push
Git 技术栈

未完待续。。。持续更新。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1,查看所有远程分支:%git branch -r 2, 拉取远程分支并创建本地分支git checkout -...
    will666阅读 2,092评论 0 18
  • git branch 查看本地所有分支 git status 查看当前状态 git commit 提交 git b...
    猿万阅读 5,100评论 1 45
  • 小时候, 忧愁是一枚小小的愿望, 我在村头, 理想在心头。 长大后, 忧愁是一张窄窄的车票, 我在路头, 希望在前...
    庭上望月阅读 4,380评论 9 21
  • 亲和我一起依窗来听雨关注我个人公众微信号326634322xiayufei 那些日子我为了生存不停的奔波,几乎疏忽...
    夏瑜斐的小木屋阅读 272评论 0 0
  • 如果有个人一脸冷笑的对你说:“你真是个直肠子!”,你会把这句话当作表扬还是批评?我想稍微有点脑子的都会意识到别人在...
    职场星阅读 452评论 0 0