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和id_rsa.pub已經生成,而且生成的路徑爲/root/.ssh/。打開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