git常用命令

2018-12-26

git init

初始化git仓库
后会出现隐藏文件夹.git 下面有一个logs 下的如下路径中 的master中 有所有操作的详细记录 HEAD中好像也有
├── HEAD
└── refs
    └── heads
        └── master
以上文件中找不到的未来版本commit_id 可以使用git reflog   

git add

参数 . 全都add 包括删除某个文件和为跟踪文件

git commit

参数  -m "提交信息"  --amend 追加修改和修改提交信息

git log

查看commit的记录  
参数 --pretty=oneline 单行显示  不包括commit作者
    --oneline  信息更少  最前方的黄色数字为commit id
    --graph 看图说话
git  reflog 命令历史

git reset

版本回退 撤销提交
git  reset  后边什么都不加 只能撤销 add  操作
git reset HEAD~1 撤销上一次add和commit 回到add之前  包括多次commit --amend的东西全都直接 回到add之前
git reset HEAD~1 --hard  直接修改本地文件成为修改之前 想要回滚 的话可以用 用git reset --hard commit id的方式进行回滚
通过 git  log  可以查看提交历史  确定我们要回去的历史版本
通过 git  reflog  可以查看命令历史和commi_id 一遍回到未来

git checkout -- readme.txt

注意  --  这个东西 没有就会变成  分之检出
或者Git checkout . 放弃本地修改  
已经add 的文件不会被切回 想要放弃修改的话  就先git reset 或者Git reset -- file.name 回到add之前
已经commit的文件  想要回到上一个版本  先git reset HEAD^ 这样会回到add之前  或者 直接 reset --hard
误删文件的时候也可以用这个命令  checkout -- file 回到删除之前  删除并且commit的文件 也可以恢复 

分支创建和合并

git branch -b dev 创建本地分支dev 并检出到分支上  相当于 git branch dev + git checkout dev 
git branch -b dev ornign/master 创建分支与远程ornign/master关联 并且直接检除到dev分支上 
git branch -d dev 删除分支  用大写的 -D 删除的更干净
git branch -v 查看本地有哪些分支
git branch -vv 查看详细的本地分支和远程分支的对应关系
git branch -a 查看全部分支 
git branch -r 这个应该是查看远程分支 
配合  grep 食用 效果更佳

git diff

差分  就是比较不同 可以用于 比较同一个文件之间前后的修改  
参数 --name-status 可以比较两个分支的那些文件 有修改

git fetch

是先把远端的分支    down单本地 但是并不merge  

git pull

相当于 git fetch 和git merge 实际使用中是使用git fetch  再 git diff 比较后再决定是否merge

git stash

保存当前状态 
--》使用场景:如果当前工作没有完成 ,又有其他要求,但是当前的工作不想提交 
              就可以使用这种方式,先保存起来或者先add  再commit 保存在当前分支  再切换其他分支完成别的工作
--》如何恢复:
git stash list  查看曾经保存过的状态
git stash apply 恢复状态但是删除stash 内容
git stash drop来删除
git stash pop  恢复同时 删除stash的内容
可以多次使用stash保存状态  再查看list 通过git stash apply stash@{0} 改变花括号中的数字 可以决定恢复到哪一个状态

git remote

查看远程信息
git remote -v 查看更详细信息

当远程分支上有人在我们之前提交时 直接 push会失败
需要先pull 一下 这是Git status 会发现commit 数不为 1 直接提交 会非常难看且 不爽
这是使用 git rebase 缺点是本地的分叉提交已经被修改过了。
而且pull 之后可能会用冲突 需要本地手动修改
git rebase 变基


更新2019-1-14 19:39:53
git 会有大patch 的情况出现就是,打补丁
方式如下:

git format-patch -1 f4a07140c773d2a321127668acb9c22013265b85 

主要指令是Git format-patch 这个是生成patch 的指令
会生成后缀patch的文件

git apply --stat 0001-publishlist-fetch.patch

查看那个 patch这个都干啥了
先检查patch文件:git apply --stat newpatch.patch

git apply --check 0001-publishlist-fetch.patch

apply 应该是应用这个补丁打到哪里去
检查能否应用成功:git apply --check newpatch.patch
这一步没有报错显示就行

git am 0001-publishlist-fetch.patch

这个才是把 补丁打进来
打补丁:git am --signoff < newpatch.patch

你可能感兴趣的:(git常用命令)