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 回复分支:分支名 散列值
    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} 显示存储的修改的文件

你可能感兴趣的:(git 常用命令)