git安裝配置技巧

安裝

  1. centos
yum install git
  1. ubuntu
apt-get install git
  1. 源碼安裝
wget https://www.kernel.org/pub/software/scm/git/git-2.5.0.tar.gz
tar zxvf git-2.5.0.tar.gz
cd git-2.5.0

./configure

make && make install

配置

git --version //查看版本

git配置文件位置 ~/.gitconfig

git config --global user.name "你的git帳戶名"       //配置git帳戶名

git config --global user.email "你的git帳戶郵箱"    //配置帳戶郵箱

1、AutoCRLF
#提交時轉換爲LF,檢出時轉換爲CRLF--Windows使用
git config --global core.autocrlf true

#提交時轉換爲LF,檢出時不轉換--Mac Uniux上使用
git config --global core.autocrlf input

#提交檢出均不轉換--僅運行在windows上使用
git config --global core.autocrlf false
2、SafeCRLF
#拒絕提交包含混合換行符的文件
git config --global core.safecrlf true

#容許提交包含混合換行符的文件
git config --global core.safecrlf false

#提交包含混合換行符的文件時給出警告
git config --global core.safecrlf warn

設置區分大小寫
git config --global core.ignorecase false

避免PULLING提交合並
git config --global branch.autosetuprebase always

顏色高亮
git config --global color.ui true
git config --global color.status auto
git config --global color.branch auto

設置默認編輯器
git config --global core.editor vim

設置默認的合併工具
git config --global merge.tool vimdiff
查看配置
git config --global --list

SSH key生成
ssh-keygen -t rsa -C "你的郵箱"    //生成的你的祕鑰
cat ~/.ssh/id_rsa.pub                    //查看是ssh密鑰:cd ~/.ssh
在github上面添加ssh 祕鑰
多個ssh key共存/切換
依次生成key
ssh-keygen -t rsa -C "你的郵箱"  -f ~/.ssh/github

添加私鑰
ssh-add ~/.ssh/github

若是執行ssh-add時提示"Could not open a connection to your authentication agent",能夠現執行命令:

ssh-agent bash
而後再運行ssh-add命令。

# 能夠經過 ssh-add -l 來確私鑰列表
ssh-add -l

# 能夠經過 ssh-add -D 來清空私鑰列表
ssh-add -D

在~/.ssh中增長config配置文件
vi ~/.ssh/config
內容
#github home-win-key
Host github.com ##能夠隨意命名,連接時使用這個名字
HostName github.com
User git
Port 22
IdentityFile ~/.ssh/github

#oschina home-win-key
Host git.oschina.net ##能夠隨意命名,連接時使用這個名字
HostName git.oschina.net
User git
Port 22
IdentityFile ~/.ssh/oschina

#coding home-win-key
Host git.coding.net ##能夠隨意命名,連接時使用這個名字
HostName git.coding.net
User git
Port 22
IdentityFile ~/.ssh/coding

git remote 修改遠端 git@git.oschina.net:xx/xx 爲別名(Host):xx/xx

測試配置
ssh -T git@git地址(例如:git.oschina.net、github.com)

命令

git init            //初始化環境

git clone 項目地址        //在本地創建遠程倉庫的副本

git status            //查看當前目錄的git狀態,包含當前所在的分支,是否有新增文件,是否有修改文件等
git status -s            //簡潔模式顯示
git config -l          //顯示git配置

git log                //查看提交的歷史記錄,包含日誌、版本號等。(":wq" 退出日誌查看狀態)
git reflog            //查看全部日誌包含刪除日誌
git stash                     //將當前分支還沒有commit的內容保存到暫存區
git stash list                 //當前分支的暫存區暫存列表
git stash pop                //從新加載最後一次保存到暫存區的內容

git diff 文件名稱            //查看文件修改內容,「---」爲更改前內容,「+++」爲更改後內容
git diff HEAD^ HEAD     //兩次提交的差別
git diff 35d9747a0cddeadf8a7ce76f518bc5be1ad54d6c^ d7ad404505f79c6678c04bb6c09c1607fc5d5ae9

git tag                        //用來爲代碼歷史記錄中的某一個點指定一個永久的書籤, 通常來講它用於發佈相關事項

git branch            //查看本地倉庫的全部分支
git branch -r            //查看遠程分支
git branch –a            //查看本地&遠端倉庫的全部分支
git branch -v            //查看各個分支最後一次提交
git branch 分支名稱        //建立分支
git branch -d 分支名稱        //刪除本地分支
git branch -D 分支名稱        //強制刪除分支
git branch --merged        //查看合併前的分支
git branch –-no-merged        //查看哪些分支未合併入當前分支

git checkout 分支名稱        //切換到指定分支
git checkout –b 分支名稱    //建立分支並切換到新建分支

git add 文件名稱        //在工做目錄中新增文件:示例:git add README.md
git add .            //添加全部文件到倉庫
git reset 文件名稱        //撤銷添加

git commit –m "備註"        //提交當前目錄全部修改到本地倉庫
git commit –a            //提交全部修改,該操做會打開vim手動指定要提交的文件。(":wq" 保存並退出)
git reset --hard commit_id     //撤銷提交

git pull <遠程主機名> <遠程分支名>:<本地分支名>        //取回遠程主機某個分支的更新,再與本地的指定分支合併。
git pull origin next:master    //取回origin主機的next分支,與本地的master分支合併
//若是遠程分支是與當前分支合併,則冒號後面的部分能夠省略
git pull origin next
//上面命令表示,取回origin/next分支,再與當前分支合併。實質上,這等同於先作git fetch,再作git merge。
git fetch origin
git merge origin/next

git fetch <遠程主機名>        //將某個遠程主機的更新,所有取回本地
git fetch <遠程主機名> <分支名>    //將某個遠程主機的指定分支更新取回本地

git merge 分支名稱        //將指定分支合併覆蓋到當前分支

git rebase 分支名稱        //把提交(補丁)臨時存放到.git/rebase中,更新到最新版本,把補丁應用到最新分支中
//rebase解決衝突,解決完衝突執行git add 無需執行git commit 執行 git rebase --continue
git rebase –skip        //跳過
git rebase --abort        //任什麼時候候能夠執行,終止合併返回rebase前狀態

git reset --hard HEAD^
git reset --hard 3628164     git 的版本都是很長的字符串

git revert

git push <遠程主機名> <本地分支名>:<遠程分支名>        //將本地分支的更新,推送到遠程主機
git push origin master:master        //將本地master推送到遠端master
//可寫git push origin master
git push origin test:test               //提交本地test分支做爲遠程的test分支
git push origin :master            //若是省略本地分支名,則表示刪除指定的遠程分支,由於這等同於推送一個空的本地分支到遠程分支。
# 等同於
$ git push origin --delete master    //刪除origin主機的master分支
注意:
git push ssh://git@dev.lemote.com/rt4ls.git master // 把本地倉庫提交到遠程倉庫的master分支中
等價於
git remote add origin ssh://git@dev.lemote.com/rt4ls.git  //添加遠端別名

合併後衝突解決辦法
1. 提交所有
git commit -a

2. 若是不想提交所有,那麼能夠經過添加 -i 選項
git commit file/to/path -i -m "merge"

git流程

git flow
https://about.gitlab.com/2014/09/29/gitlab-flow/
中文版 http://www.15yan.com/story/6yueHxcgD9Z/
git各類流程介紹
https://github.com/oldratlee/translations/blob/master/git-workflows-and-tutorials/README.md
git-flow 備忘清單
http://danielkummer.github.io/git-flow-cheatsheet/index.zh_CN.html
相關文章
相關標籤/搜索