git的一些常用命令

1. git log命令显示从最近到最远的提交日志,如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline
2. 我们要把当前版本回退到上一个版本,就可以使用git reset命令:$ git reset --hard HEAD^
    HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。
    穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
    要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
3. git diff HEAD -- file 命令可以查看工作区和版本库里面最新版本的区别
4. git checkout -- file可以丢弃工作区的修改.就是让这个文件回到最近一次git commit或git add时的状态。
    git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令
5. git reset HEAD file 可以把暂存区的修改撤销掉(unstage),重新放回工作区
6. 确实要从版本库中删除该文件,那就用命令git rm file删掉,并且git commit
7. git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。
8.  查看分支:git branch
    创建分支:git branch <name>
    切换分支:git checkout <name>或者git switch <name>
    创建+切换分支:git checkout -b <name>或者git switch -c <name>
    合并某分支到当前分支:git merge <name>
    删除分支:git branch -d <name>
    git log --graph命令可以看到分支合并图
    新建本地分支与远程分支关联  
    git branch --set-upstream-to=origin/远程分支名 本地分支的名字
    或者在本地分支下git branch -u origin/远程分支名
    撤销与远程分支的关联:在本地分支下 git branch --unset-upstream
    查看本地分支与远程分支的关联:git branch -vv
    
    
9. 修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
    当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场;
    在master分支上修复的bug,想要合并到当前dev分支,可以用git cherry-pick <commit>命令,把bug提交的修改“复制”到当前分支,避免重复劳动。
10.开发一个新feature,最好新建一个分支;如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除
11.git push <remote 名字> <本地分支的名字> : <远程库的名字>
12.更新代码 repo sync    /repo sync -c -q --force-sync --no-tags . -j12
13.解决每次push pull需要输入密码的问题:
git进入你的项目目录,输入:git config --global credential.helper store
然后你会在你本地生成一个文本,上边记录你的账号和密码。当然这些你可以不用关心。
然后你使用上述的命令配置好之后,再操作一次git pull,然后它会提示你输入账号密码,这一次之后就不需要再次输入密码了。


13.git命令之git stash apply和 pop 的区别
先说git stash:
   git stash 命令可以将在当前分支修改的内容放到缓存区中,并会自动建立一个缓存的list集合,方便管理。
如果想将修改的内容重新释放出来,git stash apply 和 git stash pop 都可以达到这个目的。
但是两者有什么区别呢。
刚才说过,git stash 可以形成list 集合。通过git stash list 可以看到list下的suoy
使用git stash apply @{x} ,可以将编号x的缓存释放出来,但是该缓存还存在于list中
而 git stash apply,会将当前分支的最后一次缓存的内容释放出来,但是刚才的记录还存在list中
而 git stash pop,也会将当前分支的最后一次缓存的内容释放出来,但是刚才的记录不存在list中
git  blame  java/com/lixiang/fota/UpdateFileManager.java  查看这个类中代码提交记录
chery-pick冲突解决:
1.切换到冲突分支,Cherry Pick下来有冲突的patch
2.解决冲突后提交(git add...)
3.gitcomm --amend
4.git push

删除 一些 没有 Git add 的 文件;
git clean 参数
-n 显示 将要 删除的文件和目录
-f 删除文件
-df 删除文件和目录

git clean -n
git clean -df
git clean -f
 

从git下载文件,下载以后如果想要重新提交,不和之前的path关联,可以使用git format-path
1. git log 查看有几个分支需要重新提交
2. 基于上几次内容打包
    git format-patch HEAD^  有几个^就会打几个patch,从最近一次打起
    git format-patch HEAD^^ 最近的二个patch内容
    以下代码作用同上
    git format-patch -1 
    git format-patch -2
3.应用刚才打包的内容
    git apply 0001-HttpServer-temp-demo.patch
    git apply 0002-Flac-codec-added-which-is-a-prerequisite-of-enabling.patch

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值