您的位置:首页 > 其它

Git 常用命令大全

2016-03-03 16:15 337 查看
Git是一个很强大的分布式版本控制系统。它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势。Git常用操作命令:1). 基本配置配置用户:$git config --global user.name  " username"配置邮件:$git config --global user.email  "xxx@xx.com"配置颜色 :  $git config --global color.ui "always"配置别名 :  $git config --global alias.ststatus查看用户:$gitconfig --list 初始化本地仓库:  $git init2).远程仓库相关命令查看远程仓库:$ git remote -v显示远程库origin里的资源:$git remote show origin添加远程仓库:$ git remote add [name] [url]删除远程仓库:$ git remote rm [name]修改远程仓库:$ git remote set-url --push [name] [newUrl]检出       仓库:$ git clone [url]拉取远程仓库:$ git pull [remoteName] [localBranchName]推送远程仓库:$ git push [remoteName] [localBranchName]*如果想把本地的某个分支test提交到远程仓库,并作为远程仓库的master分支,或者作为另外一个名叫test的分支,如下:$git push origin test:master         // 提交本地test分支作为远程的master分支$git push origin test:test              // 提交本地test分支作为远程的test分支3).分支(branch)操作相关命令本地分支:查看本地分支:$ git branch  查看所有分支:$ git branch -a重命名  分支:$git branch -m [branchname] [newname]创建本地分支:$ git branch [branchname] ----注意新分支创建后不会自动切换为当前分支切换       分支:$ git checkout [branchname]创建并切换新分支:$ git checkout -b [branchname]删除分支:$ git branch -d [branchname] -----d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。                                                                             如果想强制删除一个分支,可以使用-D选项(需要先切换到其他分支)合并分支:$ git merge [branchname] ----将名称为[branchname]的分支与当前分支合并*创建空的分支:(执行命令之前记得先提交你当前分支的修改,否则会被强制删干净没得后悔)$git symbolic-ref HEAD refs/heads/[name]$rm .git/index$git clean -fdxgit push origin master:hb-dev 将本地库与服务器上的库进行关联 创建本地分支和远程的链接关系:
git
branch --set-upstream branch-name origin/branch-name
远程分支:加"-r" 即可类似本地操作创建\推送到 远程分支:$ git push origin [branchname]查看远程分支:$ git branch -r切换到远程分支:$gitcheckout --track origin/dev 删除远程分支:$git branch -rd [branchname] 或 $ git push origin :heads/[name] 或 $ git push origin :[branchname] 4)版本(tag)操作相关命令查看版本:$ git tag创建版本:$ git tag [name]创建带注释的tag:$ git tag -a [name] -m 'yourMessage'删除标签:$ git tag -d [name]合并远程仓库的tag到本地:$ git pull origin --tags查看远程版本:$ git tag -r推送全部未推送的标签:$git push origin [branchname] --tags,没有参数--tags也能推送(commit 和 tag),未测删除远程标签:1.先本地删除 2.$ git push origin :refs/tags/[name] 5) 子模块(submodule)相关操作命令添加子模块:$ git submodule add [url] [path]   如:$git submodule add git://github.com/soberh/ui-libs.git src/main/webapp/ui-libs初始化子模块:$ git submodule init  ----只在首次检出仓库时运行一次就行更新子模块:$ git submodule update ----每次更新或切换分支后都需要运行一下删除子模块:(分4步走哦) 1) $ git rm --cached [path] 2) 编辑“.gitmodules”文件,将子模块的相关配置节点删除掉 3) 编辑“ .git/config”文件,将子模块的相关配置节点删除掉 4) 手动删除子模块残留的目录6)忽略一些文件、文件夹不提交在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件,每个元素占一行即可,如targetbin*.db7)文件添加文件到仓库暂存区:$git add [filename]删除文件:                        $git rm [filename] git rm -f a.a 强行移除修改后文件(从暂存区和工作区中删除)gitrm --cached a.a 移除文件(只从暂存区中删除) 8)本地仓库常用操作工作区:[b][b]查看工作目录状态: $git status[/b][/b]查看尚未暂存的更新:$git diff 查看尚未提交的更新:$git diff --cached 或 $ git diff --staged 恢复到暂存区/版本库状态:$git checkout --[filename1,filename2...]  回到最近一次git commit 或 git add撤销暂存区修改:git reset HEAD file index区:添加:git add ...版本库:    [b]提交所有改变:  $git commit -a 提交当前repos的所有的改变提交并看差异:  $git commit -v 带注释提交:        $git commit -m "注释"[/b]看已经被提交的:$gitls-files 查看提交日志:         $git log获取  : $git fetch 相当于是从远程获取最新版本到本地,不会自动merge合并:$git merge origin/dev 将分支dev与当前分支进行合并禁用Fast forward合并:$git merge --no-ff -m "注释" dev拉取 :  $git pull 获取并合并当前分支stash区:暂存: $git stash       把当前工作现场“储藏”起来 (git stash push)查看工作现场:$git stash List 恢复不删除:$git stash @{0}(..hashid..)恢复并删除:$git stash pop10)高级主题记录每一条命令:$git reflog  git revert 是撤销某次操作,此次操作之前的commit都会被保留回退到上一版本:$git reset --hard HEAD^回退到上n版本:$gitreset --hard HEAD^n回退到指定版本:$gitreset -- hard [commitid]gitreset --soft HEAD^git reset HEAD^变基: $git rebase编辑近n次提交: git rebase -i HEAD~n垃圾回收:$git gc
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  git 版本控制系统