git 常用命令

git init 创建一个数据库

git clone 复制一个数据到指定文件夹
git://远程Git库地址 filename
filename 是你本地的文件夹名字将远程库克隆到这个文件夹,此文件是自己建立的

git fetch 从服务器下载数据库,并放到新分支,不跟自己的数据库合并会存放在到一个 origin/master 分支上,之后再调用 merge 命令将 origin/master 分支上的修改合并到主分支上即可:git merge origin/master

git submodule init && git submodule update

=========================================================
查看本地分支,切换分支

  1. git branch  
    git branch -a(git branch -avv) 查看远程分支
    git branch -d/D yourbranch 删除本地分支
    git branch -d/D origin yourbranch 删除远程分支
    git branch branchname 新建分支
    git checkout -b branchname 新建分支并切换分支
    git branch <branch_name> <hash_val> 回复分支:分支名 散列值
    git reflog 查看想要恢复的分支的散列值
    git branch --set-upstream yourbranch origin/master 本地分支关联远程分支

  2. git checkout branchname(git checkout br) 切换/取出分支 
    切换不成功提示类似:有没有提交的修改。---确认是否时自己的修改,不是就将文件清除,是就提交

git checkout filename 拉取这个文件,会清除这个文件的修改
git reset --hard 拉取放弃所有修改的文件,代码回到最新提交的commit ID

git merge 合并分支,自己开发的模块最终要合并到项目的总分枝上去,这是要先切换到项目总分支,然后 git merge 自己的分支 保证代码最新

=========================================================

创建新分支
git checkout -b local_branch 拉取一个分支,没有就会新建一个本地的

推送本地分支 local_branch 到远程分支remote_branch 并建立关联关系:
远程已有 remote_branch分支,关联本地分支 local_branch(本地切换到local_branch): git push -u origin/remote_branch
远程没有 remote_branch分支,关联本地分支 local_branch(本地切换到local_branch): git push origin local_branch:remote_branch

git remote add [shortname] [url] 添加远程仓库
git remote show [shortname] 查看远程仓库信息
git remote 单纯的列出所有远程仓库的名字,不会展示远程仓库的地址
git remote -v 查看所有远程仓库的信息:含库名、地址
git remote rename [old-name] [new-name] 重命名远程仓库
git remote rm [shortname] 删除远程仓库

git config 配置相关信息,例如 email 和 name
git mv 重命名文件或者文件夹
git rm 删除文件或者文件夹

=========================================================

git status 查看工作区状态,及查看在此分支上进行了那些操作
git stash list 查看工作区
git stash apply 取出工作区

git diff 查看最近修改的文件内容和冲突信息
git diff --cached file 看add后的文件的修改点

如果没有找到新添加的文件,可能被忽略了使用
git st --ignored 查看

提交修改

  1. git add 把想提交的文件 add 上,然后 commit 这些文件到本地数据库
    git add 文件名(已经在该文件路径内)/文件路径(res/layout/activity_main.XML )
    git add ./* 当前文件目录下所有文件提交

  2. git pull 更新
    从服务器下载总数据库的更新信息,并跟自己的数据库合并。
    如果几个人同时在一个分枝上开发,可能会造成不同步,造成自己本地的GIT库落后或提前远程GIT库,这时候就要更新自己本地的库。

  3. git commit -a -m "描述" 提交本地修改到分支-a 代表all
    git commit --amend 修改最近一次提交的信息,进入vi编辑模式按a,编辑完成后Ctrl+c退出编辑,输入: 在输入wq保存

  4. git push 提交,将自己开发的代码提交到对应的远程分之上去
    向其他数据库推送自己的数据库

撤销add命令提交的file文件
git reset + 文件名

=========================================================

log 提交记录查看
git log  查看操作日志
git log --author yourname 通过作者搜索
git log --grep keywords 通过提交关键字搜索
git log --grep=keywords --author=作者名 --oneline 查看作者对于的关键字记录

git log --author=作者名 --pretty=oneline branch_name
git log branch_name --pretty=oneline 查看这个分支提交的记录,并显示成一行

git log --graph --oneline
git log --oneline //--pretty=--oneline 都是显示一行

git show logID 显示文件的修改
参数是 HEAD 查看最新版本
git show filename 显示文件信息
git show --stat logID 列出修改的文件

git cherry-pick logID 在当前将其他分支的修改合并过来,如果无冲突直接 git push

=========================================================

清除所有目录 Untracked files :
git clean -f :/ 删除 untracked files

加上 -n 参数来先看看会删掉哪些文件
git clean -nf :/
git clean -ndf :/
git clean -nxdf :/
git clean -df :/ 连 untracked 的目录也一起删掉
git clean -xdf :/ 连 gitignore 的untrack 文件/目录也一起删掉
git clean -xdf . 清除当前目录下所有 Untracked files

HEAD 指向当前分支当前版本的游标

回退:
git checkout . 删除本地修改(Changes not staged for commit files
git checkout commit-ID filename 还原这个提交记录时的文件
git checkout 808aa8c7c78df54a308da3787671a030b2858b68 build/target/product/locales_full.mk

删除commit LogID
git reset –-soft / --hard
git reset --hard 彻底回退到某个版本,本地修改会清除。
git reset --hard HEAD ~ 1 彻底回退到某个版本,本地修改会清除。(1回退到上一次提交,2回退到上两次提交,以此类推)
git reset --hard LogID 彻底回退到某个版本,本地修改,暂存区记录都清除了。
git push --force 推送到远程,这样在服务器上就能回退到你想回退的位置。

git reset --soft LogID 将本地代码切换到目标id版本,并存所删除记录所做的更改
git push

git revert logid 撤销logid这个动作修改的代码,会产生一个新的commit,
将这次回退作为一次修改记录提,会出现一个vi查看文件的界面,退出输入 :q!

=========================================================

往堆栈推送一个新的储藏:
git stash 推送一个新的储藏
git stash pop stash@{0} 恢复指定的进度到工作区
git stash pop --index 恢复最新的进度到工作区和暂存区。(尝试将原来暂存区的改动还恢复到暂存区)

git stash -u 暂存未跟踪或忽略的文件
git stash --include-untracked 暂存未跟踪或忽略的文件
git stash list 查看现有储存
git stash drop stash@{0} 删除第一个队列
git stash show stash@{0} 显示存储的修改的文件

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,367评论 6 512
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,959评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,750评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,226评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,252评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,975评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,592评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,497评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,027评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,147评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,274评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,953评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,623评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,143评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,260评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,607评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,271评论 2 358