git 有工作區、暫存區、版本庫
git init//初始化版本庫
git add file_name//將file_name從工作區新增到暫存區
git commit//將暫存區的修改提交到版本庫 -m 新增
git status//檢視倉庫狀態
git diff file_name//檢視版本庫中file_name與工作區file_name的不同
git log
//檢視提交記錄 --pretty=oneline 一行顯示一條記錄
git reset --hard head^ //head表示當前版本,^表示上一版本 ^^表示上兩個版本,依此類推
git reset --hard commit_id //回退到指定id版本
git reflog//檢視歷史命令
git checkout -- file_name //撤銷對工作區file_name檔案的修改,如果add到暫存區可以用git reset head file_name 來撤銷暫存區的修改,如果commit之後可以用git reset --hard head^來回退到上乙個版本
git rm file_name//刪除某檔案,刪除版本庫中的檔案一定要commit,沒有commit之前可以用git checkout -- file_name撤銷刪除,commit之後可以回退版本
遠端倉庫一定要加ssh key如果不加則無法push
ssh生成命令
ssh-keygen -t rsa -c "email"
git clone remote_repository_link
git remote add origin remote_repository_link //origin 遠端倉庫名稱
git push -u origin master //master 本地分支名稱
git push origin master
git checkout -b dev origin/dev //抓取遠端dev分支到本地dev分支
git pull //合併遠端分支到本地
git remote //檢視遠端分支
git remote -v
//檢視遠端分支詳情
git branch --
set-upstream dev origin/dev //關聯本地分支到遠端分支
git 預設有乙個master分支
git checkout -b branch_name //建立並切換分支
git branch branch_name //建立分支
git checkout branch_name //切換分支
git branch //檢視分支
git branch -d branch_name //刪除分支 -d 為強行刪除
git merge branch_name //合併指定分支到當前分支
git log
--graph --pretty=oneline --abbrev-commit
//--graph可以檢視分支合併圖
git merge --no-ff
-m"" branch_name // --no-ff 禁用fast-forward模式,會建立乙個新的commit
git stash //儲存工作現場
git stash list
//列出所有儲存的工作現場。如,stash@: wip on dev: 6224937 add merge
git stash pop //恢復工作現場並刪除
git stash drop //刪除工作現場
//以上三個命令在有多個stash的時候,可以加上stash id 如 git stash pop stash@
git tag
tag_name
//建立標籤
git tag
//列出所有標籤
git tag
tag_name commit_id //為指定commit新增標籤
git tag
-atag_name
-m"" commit_id //為指定commit新增帶說明的標籤
git tag
-stag_name
-m"" commit_id //用私鑰簽名乙個標籤(簽名採用pgp簽名,因此,必須首先安裝gpg(gnupg))
git tag
-dtag_name
//刪除標籤
git show tag_name
//檢視標籤詳情
git push origin tag_name
//推送標籤到遠端
git push origin --tags //推送所有標籤未推送過的到遠端
//刪除遠端標籤
git tag
-d v1.0
//先刪除本地
git push origin:refs/tags/v1.0
//刪除遠端標籤
git config --global
color.ui true //git顯示顏色
//別名
git config --global
alias.st status
git config --global
alias.co checkout
git config --global
alias.ci commit
git config --global
alias.br branch
git config --global
alias.unstage 'reset head'
git config --global
alias.last 'log -1'
//乙個牛x的配置
git config --global
alias.lg "log --color --graph --pretty=format:'%cred%h%creset -%c(yellow)%d%creset %s %cgreen(%cr) %c(bold blue)<%an>%creset' --abbrev-commit"
這裡只先說下linux的
1. 安裝git
sudo apt-get install git
2. 建立git使用者,執行git服務
sudo adduser git
3. 建立證書登入
收集所有需要登入的使用者的公鑰,就是他們自己的id_rsa.pub檔案,把所有公鑰匯入到/home/git/.ssh/authorized_keys
檔案裡,一行乙個。
4. 初始化git倉庫
假定git倉庫為/srv/sample.git,在/src目錄下輸入
sudo git init --bare sample.git
更改git倉庫許可權
sudo chown -r git:git sample.git
5. 禁用shell登入
出於安全考慮,第二步建立的git使用者不允許登入shell,這可以通過編輯/etc/passwd
檔案完成。找到類似下面的一行
git:x:1001:1001:,,,:/home/git:/bin/bash
改為git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
Git基本使用
設定使用者名稱與郵箱 git config global user.name my name git config global user.email my email.com 從已有的git庫中提取 每次更改 的操作 更新本地 到最新版本 需要merge才能合到本地 中 git fetch 合併更...
git基本使用
git pull 從其它的版本庫 既可以是遠端的也可以是本地的 將 更新到本地,例如 git pull origin master 就是將origin這個版本庫的 更新到本地的master主分支。git pull可以從任意乙個git庫獲取某個分支的內容。用法如下 git pull username ...
git基本使用
git pull 從其它的版本庫 既可以是遠端的也可以是本地的 將 更新到本地,例如 git pull origin master 就是將origin這個版本庫的 更新到本地的master主分支。git pull可以從任意乙個git庫獲取某個分支的內容。用法如下 git pull username ...