git相比svn作代码管理,感受更有优点,这二者的区别体如今如下几点:git
通常来说 咱们都是基于工做开发使用git的,首先在gitlab搭建本身服务器,再由管理员去给你分配帐号权限,若是你是提交代码到我的的githHub上,你得先本身去申请帐号。安全
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
复制代码
用了这个参数,表示你这台机器上全部的Git仓库都会使用这个配置,固然也能够对某个仓库指定不一样的用户名和Email地址bash
ssh-keygen -t rsa -C ”yourEmail@example.com”
复制代码
最后显示成:服务器
打开id_rsa.pub文件,而且复制所有内容。(路径 C:\Users\admin.ssh)。ssh
打开GitLab帐户,打开SSH Keys: 添加git秘钥分布式
$ git add file1 file2 .... // 添加指定文件到暂存区
$ git add [dir] // 添加指定目录到暂存区,包括子目录
$ git add . // 添加当前目录下的全部文件到暂存区
$ git rm file1 file2 ... // 删除指定文件,并将本次删除放入暂存区
$ git rm --cached file //中止追踪该文件,但该文件会保留在工做区
$ git mv [file-original] [file-renamed] // 更名文件,而且将这个更名放入暂存区
复制代码
$ git commit -m [message] // 提交暂存区到仓库区
$ git commit [file1] [file2] ... -m [message] // 提交暂存区的指定文件到仓库区
$ git commit -a // 提交工做区自上次commit以后的变化,直接到仓库区
$ git commit -v // 提交时显示全部diff信息
$ git commit --amend -m [message] // 使用一次新的commit,替代上一次提交, 若是代码没有任何新变化,则用来改写上一次commit的提交信息
$ git commit --amend [file1] [file2] ...// 重作上一次commit,并包括指定文件的新变化
复制代码
$ git flow feature start <branch-name> // git-flow 建立 feature 分支
$ git flow feature finish <branch-name> // git-flow 结束 feature 分支
$ git flow release start 1.1.5 // git flow 建立release 分支
$ git flow release finish 1.1.5 // git flow 结束release 分支
$ git branch // 列出全部本地分支
$ git branch -r // 列出全部远程分支
$ git branch -a // 列出全部本地分支和远程分支
$ git branch [branch-name] // 新建一个分支,但依然停留在当前分支
$ git checkout -b [branch] // 新建一个分支,并切换到该分支
$ git branch [branch] [commit] // 新建一个分支,指向指定commit
$ git checkout [branch-name] // 切换到指定分支,并更新工做区
$ git checkout - // 切换到上一个分支
$ git merge [branch] // 合并指定分支到当前分支
$ git cherry-pick [commit] // 选择一个commit,合并进当前分支
$ git branch -d [branch-name] // 删除分支
$ git push origin --delete [branch-name] // 删除远程分支
$ git branch -dr [remote/branch] // 删除远程分支
复制代码
$ git status // 显示有变动的文件
$ git log // 显示当前分支的历史版本
$ git log --stat // 显示提交历史以及每次提交发生变动的文件
$ git shortlog -sn // 显示全部提交过得用户,并按提交次数排序
$ git diff // 显示暂存区和工做区的差别
$ giy diff --cached [file] // 显示暂存区和上一个提交的差别
$ git diff HEAD // 显示工做区与当前分支最新提交的差别
$ git show [commit] // 显示某次提交的源数据和内容变化
$ git reflog // 显示当前分支的最近几回提交
$ git blame [file] // 显示指定文件是什么人在什么时间修改过
复制代码
$ git fetch [remote] // 下载远程仓库的全部变更
$ git remote -v // 显示全部远程仓库
$ git remote show [remote] // 显示某个远程仓库的信息
$ git remote add [shortname] [url] // 增长一个新的远程仓库,并命名
$ git pull [remote] [branch] // 取回远程仓库的变化,并与本地分支合并
$ git push [remote] [branch] // 上传本地指定分支到远程仓库
$ git push [remote] --force // 强行推送当前分支到远程仓库,即便有冲突
$ git push [remote] --all // 推送全部分支到远程仓库
$ $ git reset --hard //重置暂存区与工做区,与上一次commit保持一致
$ git checkout . // 恢复暂存区的全部文件到工做区即撤销暂存
$ git checkout [file] // 恢复暂存区的指定文件到工做区
$ git checkout [commit] [file] // 恢复某个commit的指定文件到暂存区和工做区
$ git stash // 暂时将未提交的变化移除,稍后再移入
复制代码
以上是全部git工做中经常使用的一些基本操做命令,在实际开发中,也许你会以为这种用命令化的操做提交代码比较痛苦,下面将会为你们带来一篇关于git可视化管理工具的SourceTree使用,用图形界面的操做替代这种黑窗口命令,让你对代码的管理更加轻松自如。svn