今天拜讀雪峯老師git教程作一些總結git
Git 使用命令shell
//初始化倉庫
git initvim
//設置用戶名密碼
git config --global user.name "Your Name"
git config --global user.email "you@example.com"bash
//添加文件到git倉庫 可反覆使用添加多個文件
git add <file>服務器
//提交文件
git commit -m "備註"app
//以彩色顯示改動狀態
git config [--global] color.ui truessh
//查看工做區狀態
git status 工具
//查看文件哪些內容被修改過
git diffui
//查看提交歷史記錄 參數[pretty=oneline] 簡化顯示信息
git log [ pretty=oneline]加密
//回溯到哪一個版本 HEAD 指當前版本;HEAD^ 指上一版本;HEAD^^上上版本 HEAD~100 上100個版本。。。
git reset --hard commit_id
//重回將來的哪一個版本,查看命令歷史,以便確認將來版本號commit_id
git reflog
//丟棄工做區修改時
git checkout -- <file>
//已提交到暫存區stages 想丟棄修改
git reset HEAD <file>
git checkout -- <file>
//刪除版本庫中的文件
git rm <file>
//從版本庫還原到工做區的版本 "一鍵還原"
git checkout -- <file>
//建立SSH Key
$ ssh-keygen -t rsa -C "youremail@example.com"
//關聯一個遠程倉庫 xx.git 遠程倉庫地址
git remote add origin xx.git
//第一次推送master分支的全部內容
git push -u origin master
//要克隆一個倉庫,首先必須知道倉庫的地址,而後使用git clone命令克隆。 Git支持多種協議,包括https,但經過ssh支持的原生git協議速度最快。
git clone xx.git
//查看分支
git branch
//建立分支
git branch <name>
//切換分支
git checkout <name>
//建立+切換分支
git checkout -b <name>
//合併某分支到當前分支
git merge <name>
//刪除分支
git branch -d <name>
//查看分支合併圖
git log --graph
//強制禁用Fast forward模式,Git就會在merge時生成一個新的commit,這樣,從分支歷史上就能夠看出分支信息。
git merge --no-ff -m "備註" dev/*分支*/
//當手頭工做沒有完成時,先把工做現場git stash一下,而後去修復bug,修復後,再git stash pop,回到工做現場。
git stash //把手頭工做儲藏起來,幹完別的活後
git stash pop //回到手頭工做/*快捷鍵== git stash apply stash_id + git stash drop stash_id*/
//查看stash列表
git stash list
//強制刪除一個分支<name> 注意:當前位置不能在被刪除的分支上
git branch -D <name>
//查看遠程庫信息
git remote -v
//抓取遠程更新
git pull origin branch-name
//本地推送分支
git push origin branch-name
//在本地建立和遠程分支對應分支, 本地和遠程分支最好是同樣
git checkout -b branch-name origin/branch-name
//創建本地分支和遠程分支的關聯
git branch --set-upstream branch-name origin/branch-name
//建立一個新標籤 默認爲HEAD
git tag <name> [commit_id]
//查看全部標籤
git tag
//查看標籤信息
git show <tagname>
//建立帶有說明的標籤 -a 制定標籤名 -m 指定說明文字
git tag -a 版本號(v1.0) -m "備註" commit_id
//能夠經過 -s 用私鑰簽名一個標籤 私鑰須要安裝gpg加密工具並生成gpg私鑰
git tag -s 版本號 -m "備註" commit_id
//推送一個本地標籤
git push origin <tagname>
//推送所有爲推送過的本地標籤
git push origin --tags
//刪除一個本地標籤
git tag -d <tagname>
//刪除一個遠程標籤
git push origin :refs/tags/<tagname>
//忽略提交的文件
! 在與.git同級的根目錄下建立.gitignore文件,vim .gitignore 編輯你要忽略的文件。如 *.db,Desktop.ini 等
//配置別名
git config [--global] alias. 簡寫命令<如st> 命令/"" <如status/"reset HEAD">
搭建Git服務器
1,必須以roo身份
yum install git
adduser git
passwd git
2,切換用戶git, 建立倉庫
su git
選定一個目錄做爲Git倉庫,假定是/srv/sample.git,在/srv目錄下輸入命令
$ sudo git init --bare sample.git
$ sudo chown -R git:git sample.git
3,建立證書登陸, 把項目組全部人的公鑰都收集
scp 項目組本地公鑰路徑/id_rsa.pub git@192.168.0.188(倉庫路徑)
4,把全部人的公鑰都寫入到/home/git/.ssh/authorized_keys文件裏,一行一個
cat id_rsa.pub<1> id_rsa.pub<2> ... >> .ssh/authorized_keys文件裏,一行一個
5,禁shell登陸
權限用戶root
vim /etc/passwd
把git:x:1001:1001:,,,:/home/git:/bin/bash
改成
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
6, 克隆遠程倉庫 server-->192.168.0.188<ip地址>
$ git clone git@server:/srv/sample.git
方便管理公鑰, 用Gitosis
配置Git時,加上 --global 對當前用戶起做用, 不加對當前倉庫起做用
每一個倉庫的Git配置文件都放在.git/config文件中
別名就在[alias]後面,要刪除別名,直接把對應的行刪掉便可
而當前用戶的Git配置文件放在用戶主目錄下的一個隱藏文件.gitconfig中