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
=========================================================
查看本地分支,切换分支
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回复分支:分支名 散列值
git reflog 查看想要恢复的分支的散列值
git branch --set-upstream yourbranch origin/master 本地分支关联远程分支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 查看
提交修改
git add 把想提交的文件 add 上,然后 commit 这些文件到本地数据库
git add 文件名(已经在该文件路径内)/文件路径(res/layout/activity_main.XML )
git add ./* 当前文件目录下所有文件提交git pull 更新
从服务器下载总数据库的更新信息,并跟自己的数据库合并。
如果几个人同时在一个分枝上开发,可能会造成不同步,造成自己本地的GIT库落后或提前远程GIT库,这时候就要更新自己本地的库。git commit -a -m "描述" 提交本地修改到分支-a 代表all
git commit --amend 修改最近一次提交的信息,进入vi编辑模式按a,编辑完成后Ctrl+c退出编辑,输入: 在输入wq保存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} 显示存储的修改的文件