Android Git简易教程

查看篇

  • 查看git仓库的提交记录:git log
  • 参数说明:
    • git log --oneline 单行显示git log信息
    • git log --decorate 修饰性的显示,主要是可以查看分支信息
    • 注意:git logcommit fbac9424348189e46175316396d7659f726157ed的commit后的前六位是当前log的标志,用于定位,如果需要回滚,可以使用这个标志位。

  • 查看当前所处分支:git branch -vv
  • 查看当前分支名称:git symbolic-ref --short -q HEAD

添加篇

  • 添加修改的部分到本地仓库:git add *
    • 注意:“*”表示全部添加,一般使用的是下面的git add .
  • 依据.gitignore过滤规则添加:git add .
    • 注意:“.”表示的是当前目录下依照.gitignore来添加。
    • .gitignore配置生效请看配置篇。
  • 提交修改的部分到本地仓库:git commit -m "文字信息"
    • 注意:“文字信息”指的是当前提交版本的信息
  • 提交到远程git仓库:git push origin master
  • 强制提交到远程git仓库:git push -f [origin master]
    • 只有在回滾的时候用到,注意没事不要乱用,会强制覆盖掉远程仓库的东西的。
    • 注意:[]表示可选,默认是origin master

撤销篇

  • 撤销当前git add:git reset HEAD .
  • 回滾一个版本git reset --hard HEAD^
    • 注意:一个“”表示回退一个版本,如果要回退两个版本就用“^”
    • 注意:回滾了之后找不回来原来的版本,除非必要,否则不要随便使用。
  • 放弃当前所有的更改git checkout .
    • 注意:后面是“.”;当文件没有被提交commit过的时候,git checkout .是没有用的。

更新篇

  • 更新其他人提交的代码【自动合并,没有merge信息,推荐!】
    • git pull --rebase
  • 远程服务器本地端拉取更新
    • git fetch [origin master]
      • 注意:拉取到本地,这个时候并没有开始合并工作
    • git pull [origin master]
      • 注意:这里是合并工作,可能会出现Merge conflict…的错误……可以使用git mergetool解决,请看**配置篇——git冲突合并**博文。
  • 使用远程分支覆盖本地分支
    • git fetch --all
    • git reset --hard origin/master
  • 修改分支的名称
    • git branch -m old_branch new_branch # Rename branch locally
    • git push origin :old_branch # Delete the old branch
    • git push --set-upstream origin new_branch # Push the new branch, set local branch to track the new remote

暂存篇

  • 将本地的修改的代码提交到暂存区:git stash
    • 注意:何时使用?如果你不想要commit,但是想要git pull,可以使用这个命令,将本地修改的代码先暂存到暂存区。
  • 将暂存区中的代码取出来:git stash pop
    • 注意:取出来的时候可能会出现Merge conflict…的错误,可以使用git mergetool解决。
  • 将暂存区中的内容清空:git stash clear

注意:如果不知道为什么要用git stash,可以看我的博文——commit your changes or stash them before you can merge.

克隆篇

  • 浅克隆
    • 仅仅克隆一层
    • git clone --depth 1 git@github.com:flutter/flutter.git
  • 恢复浅克隆
    • 取回Tag:git fetch --tags
    • 取回分支:(shallow clone之后,remote.origin.fetch的值是+refs/heads/master:refs/remotes/origin/master,所以会发现怎么fetch都没有其他分支。)
      • git config remote.origin.fetch '+refs/heads/*:refs/remotes/origin/*'
      • git fetch --unshallow

配置篇

自建仓库

普通用户ssh免密登陆完美解决(Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password))

遇到诸如:git clone ssh://sci.xxxx.domain:12933/xxx/xxx.git,而且用户名不是自己本机的名称的时候,可以对单个域名进行映射。打开git配置文件:vim ~/.ssh/config,增加如下内容:

Host sci.xxx.domain(域名)
user 用户名

这样子,在执行git clone的时候,就会默认增加用户名,git clone ssh://用户名@sci.xxx.domain:12933/xxx/xxx.git了。

常见错误

附录

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值