东转西转

git

1 git 使用

1.1 git 安装

~$: sudo apt-get install git

1.2 git 初始化

~$: git init
~$: git remote add origin https://github.com/username/xxxx.git
~$: git config --global user.name "yourname"
~$: git config --global user.email youremail@example.com

1.3 git 常用命令

    git status        查看仓库状态,显示上次递交之后本地的文件变动以及临时递交,注意这里比较的是同一节点间的变动。
git diff 尚未缓存的改动
git diff --cached 查看已缓存的改动
git diff HEAD 查看已缓存的与未缓存的所有改动
git log 查看历史记录
git log origin/<branch-name> 查看远程分支递交记录
git stash 把当前的工作隐藏起来 等以后恢复现场后继续工作
git stash list 查看所有被隐藏的文件列表
git stash apply 恢复被隐藏的文件,但是内容不删除
git stash drop 删除文件
git stash pop 恢复文件的同时 也删除文件
git remote 查看远程库的信息
git fetch 更新远程数据到本地
git merge 合并本地分支
git pull <remote> <localbranch> 同步远程代码到本地
实际上git fetch+git merge=git pull动作
git push origin master Git会把master分支推送到远程库对应的远程分支上
push -u origin master 注意-u参数,表示选择upstream,一个branch可以对应多个upstream,-u参数是选择你的默认upstream,以后使用git fetch/git pull/git rebase时就可以不用加参数了,一般是使用在第一次git push时 。官方文档表示参考git config的branch.<name>.merge的相关内容
git add -A . 所有变更文件添加到缓存区
git commit 将缓存区的变更更新到仓库
git show <commit checksum> 显示commit校验和对应的修改
git reset HEAD^ 撤销至上个递交记录
git reset --hard <commit checksum>
撤销/回退到相应checksum的commit,注意当前代码的备份,该操作会覆盖当前的代码
git rm 将文件从缓存区移除

2.git 本地使用流程

    git clone git@github.com:username/uboot.git //克隆远程代码到本地
git add -A . //将本地代码的变更添加到git缓存中
git commit -m "add uboot" //提交变更到本地git
git push origin master //同步到远程主机
在远程仓库为空,且本地仓库有新文件的情况下可以使用一下方式:
git init
git add .
git commit -m "xxxx"
git remote add origin git@github.com:username/uboot.git
git push -u origin master

3.fork项目相关操作

1.更新自己 Fork 的代码项目和原作者的项目进度一致的方法:
原项目地址:https://github.com/gozfree/libraries.git
1)将fork到github上的项目clone到本地
git clone https://github.com/feisonzl/libraries.git
cd libraries
2)添加 gozfree 项目的地址,也就是主项目的 remote 地址
git remote add gozfree https://github.com/gozfree/libraries.git
git fetch gozfree
git merge gozfree/master
3)将原作者的项目跟新到我的github中
git commit -m '更新到原作者的主分支的进度'
git push origin

4.git patch生成和使用

    1.git diff方法
git diff > name.patch 生成patch
git diff --cached > name.patch
git diff branch-name --cached > name.patch
git apply name.patch 应用patch 2.git format-patch
git format-patch -M master 生成patch
git am ***.patch 应用patch

5.git status问题:

当clone到用户端的文件被更改权限后,git status会爆出很多modify
解决方法:更改.git\config文件中的filemode=true改为false
 

6. git 版本回退

先显示提交的log

$ git log -3
commit 4dc08bb8996a6ee02f
Author: Mark <xxx@xx.com>
Date: Wed Sep 7 08:08:53 2016 +0800 xxxxx commit 9cac9ba76574da2167
Author: xxx<xx@qq.com>
Date: Tue Sep 6 22:18:59 2016 +0800 improved the requst commit e377f60e28c8b84158
Author: xxx<xxx@qq.com>
Date: Tue Sep 6 14:42:44 2016 +0800 changed the password from empty to max123

回滚到指定的版本

git reset --hard e377f60e28c8b84158

强制提交

git push -f origin master

repo

1.repo常用命令

1.repo init –u URL [OPTIONS] //检出清单版本库
options:
-u:指定一个URL,其连接到一个maniest仓库
-m:在manifest仓库中选择一个xml文件
-b:选择一个maniest仓库中的一个特殊的分支
例:repo init -u 172.16.16.121:manifest -b msm8909 -m qcom_msm8909.xml
2.repo sync //同步版本库
3.repo start <newbranchname> [--all | <project>…] //创建并切换分支
4.repo checkout //切换分支
5.repo branches //查看分支
6.repo diff //查看工作区文件差异
7.repo stage //把文件添加到index表中
8.repo status //查看文件状态

2.repo常用操作流程

    repo init -u gitserver:manifests.git -m xxx.xml (xxx.xml文件决定初始化的项目)
repo sync
repo start xxx --all //创建xxx项目对应的分支 (--all意为将所有模块都归为当前xxx分支下)
git add xxx
git commit -m "xxx"
repo upload

3.repo切换分支

    cd .repo/manifests
ls //查看xxx.xml文件
cd .. //回到上级目录
ln -s manifest.xml manifests/QK_CM298_EXER.xml //更换manifest.xml的软连接
cd ..
repo sync //同步代码
repo start xxx--all//建立本地分支

4. 自己踩过的坑

1.部分子目录中的文件push后,远程依然没有的情况
最近在使用git push时,发现怎么push,远程都无法同步本地子目录下的文件,困扰了我两天时间,最后发现是因为子目录中也有.git文件夹,因为该目录是我之前pull的别人的,一直没注意。这种情况,push是不会同步含有.git文件夹的子目录的。

git --- 持续更新的更多相关文章

  1. git常用命令(持续更新中)

    git常用命令(持续更新中) 本地仓库操作git int                                 初始化本地仓库git add .                       ...

  2. 【github&&git】4、git常用命令(持续更新中)

    git常用命令(持续更新中) 本地仓库操作git int                                 初始化本地仓库git add .                       ...

  3. 【笔记】git 的常用操作命令(持续更新。。。)

    项目正在如火如荼的开展,代码量的繁多不得不令我们运用 git 这个有用的工具去管理我们共同协作的代码 git 在这里不作什么介绍了,百度一大堆的教程 首推廖雪峰老师的:http://www.liaox ...

  4. 开发常用Git/Linux/idea命令快捷键总结(持续更新)

    在开发过程中,会使用越来越多的命令,或快捷键,来帮助我们提高工作效率.本文记录了我在平时积累的常用命令,分享给大家. git命令 基本命令 set LESSCHARSET=utf-8 --idea T ...

  5. git使用技巧集合(持续更新中)

    git使用技巧集合(持续更新中) 在团队协作中,git.svn等工具是非常重要的,在此只记录一些git使用过程中遇到的问题以及解决方法,并且会持续更新. 1.git commit之后,还没push,如 ...

  6. 常见 git 需求整理(持续更新中)

    首发于 语雀文档 突然感觉自己对 git 还是挺熟悉的,因为团队里新来的七八号应届生来问我 git 问题,基本没有答不上的情况,但为了能更好地对知识进行整理,还是记录一下为好. (希望能)持续更新.. ...

  7. 神技!微信小程序(应用号)抢先入门教程(附最新案例DEMO-豆瓣电影)持续更新

    微信小程序 Demo(豆瓣电影) 由于时间的关系,没有办法写一个完整的说明,后续配合一些视频资料,请持续关注 官方文档:https://mp.weixin.qq.com/debug/wxadoc/de ...

  8. 总结js常用函数和常用技巧(持续更新)

    学习和工作的过程中总结的干货,包括常用函数.常用js技巧.常用正则表达式.git笔记等.为刚接触前端的童鞋们提供一个简单的查询的途径,也以此来缅怀我的前端学习之路. PS:此文档,我会持续更新. Aj ...

  9. 干货!IT小伙伴们实用的网站及工具大集合!持续更新!

    1.Git 还在担心自己辛辛苦苦写的代码被误删了吗?还在担心自己改错了代码不能挽回吗?还在苦恼于多人开发合作找不到一个好的工具吗?那么用Git就对 了,Git是一个开源的分布式版本控制系统,用以有效. ...

随机推荐

  1. String与Integer问题

    今天分享一下关于最近面试的问题,临近春节,而我在茫茫人海中奔波,今天面试了来到了中关村科技园,挺气派的,之前也是在外面看看,今天就去了,心里有点激动,恰好,正好赶上了上班时,看见它们的努力,我感到再累 ...

  2. python学习笔记——(一)基础设置

    python的学习,今天就开始上开发环境Pycharm,这样以后在调试,使用和学习起来就方便很多. 我用的是JetBrains PyCharm Community Edition 2018.1.1 x ...

  3. centos7.5 时间设置

    # ----- 设置时间同步+时区(上海) ----- rpm -qa ntp || yum -y install ntp systemctl enable ntpd timedatectl set- ...

  4. HTTP Post multipart/form-data支持

    最近需要向平台发送录像文件,但是Skynet没有multipart/form-data的Post请求支持,写篇blog记录一下 skynet有自带简单的httpc,里面有post方法.但是这个post ...

  5. Jmeter接口测试+压力测试

    链接推荐:https://blog.csdn.net/github_27109687/article/details/71968662

  6. Mysql update指定区间的数据

    ,) as a) Mysql 中 limit不能作为字句,所以要在limit外面再嵌套一层select

  7. PHP之魔术方法

      PHP中的魔术方法: PHP的魔术方法主要是在特定的条件下执行相应的魔术方法.这和很多框架中的钩子函数有些类似,不同的是,钩子函数是在生命周期的某个周期内自动执行,而魔术方法是在触发某种条件下自动 ...

  8. synchronized各种使用场景

    synchronized属于JVM锁机制 一.使用场景 在并发量比较小的情况下访问公共资源,使用synchronized是个不错的选择,但是在并发量比较高的情况下,其性能下降很严重 二.应用场景:同步 ...

  9. 学习笔记DL007:Moore-Penrose伪逆,迹运算,行列式,主成分分析PCA

    Moore-Penrose伪逆(pseudoinverse). 非方矩阵,逆矩阵没有定义.矩阵A的左逆B求解线性方程Ax=y.两边左乘左逆B,x=By.可能无法设计唯一映射将A映射到B.矩阵A行数大于 ...

  10. vue项目打包后的资源路径问题

    最近做的vue项目,本地测试完成后,build上线,却发现了文件路径问题,提示各种诸如js,css等资源找不到的错: 正确解决方式有两种,一种是绝对路径配置,详细可以网上查,个人推荐第二种相对路径,这 ...