工做中git經常使用操做記錄,本身用的也不是特別熟練,但願你們多多指教,之後會繼續完善。git
1. 基礎使用
# git clone url <asName> 從現有的repository克隆到本地,最後的asName是別名,可選項緩存
#新建本地倉庫 (安裝git後)在要建立git倉庫repository的地方右鍵 git bash here
$git init repository
cd repositoryName 命令行進入git倉庫bash
# git status 查看當前git倉庫的情況,能知道是否有更新須要暫存add,是否有暫存須要commit 或 reset, 以及commit to push
# git add /rm. add 的做用不少,能夠track新文件, 添加修改到stage, rm filename : 移除文件app
git add 的使用有不一樣方式,
# git add <filename> -- 單獨一個文件名
# git add <dirname> -- 目錄名url
# git add xx命令能夠將xx文件添加到暫存區,若是有不少改動能夠經過 git add -A .來一次添加全部改變的文件。注意 -A 選項後面還有一個句點。
# git add -A 表示添加全部內容
# git add . 表示添加新文件和編輯過的文件不包括刪除的文件;
# git add -u 表示添加編輯或者刪除的文件,不包括新添加的文件spa
# git commit -m "comment"命令行
# git push 推送到遠程repositoryci
若是遠程庫有更新,則須要先更新後再提交
# git pull 拉取最新的內容rem
建議頻繁使用
git status
git add
git commit
git pushit
追加提交
git commit --amend
2. 從已有項目建立git repository
#鏈接到遠程倉庫併爲該倉庫repository建立別名 , 別名爲origin . 這個別名是自定義的,一般用origin ; 遠程repository地址
git remote add origin 遠程倉庫地址
#建立一個 upStream (上傳流),並將本地代碼經過這個 upStream 推送到 別名爲 origin 的倉庫中的 master 分支上
git push -u origin master
遠程分支已經有內容時:
push遠程分支報錯:refusing to merge unrelated histories
git pull origin master --allow-unrelated-histories
3. git 分支
git branch -a --列出全部分支 有 * 的是當前分支
git branch -v --全部分支最後提交信息
git branch newbranch --建立分支
git checkout branch --切換分支,須要先commit全部內容
git push --set-upstream origin newbranch -- 向新分支提交,須要先設置upstream
git merge branchName --合併分支到當前分支,有衝突時不會提交,須要合併後commit
git branch -d branchName --刪除分支
以上都是本地分支,建議頻繁使用分支
刪除遠程分支
git push origin -delete branchname
tag
git tag -- 查看tag lsit
git tag -a tagname -m 'comment' -- 建立tag
git push origin tagname -- 推送到遠程庫
git tag -d tagnme --刪除tag
git push origin :refs/tags/tagname -- 刪除遠程的tag
4. git撤銷
a. 在工做區的改動,未add以前 --恢復工做區的內容
使用git checkout . 恢復所有內容( . ),固然也可使用git checkout <filename> 或git checkout <dirname>
b. 改動已經執行過add命令 --恢復暫存區的內容
git reset HEAD . -- 所有恢復
git reset HEAD <filename>
c. 改動已經commit,可是未push --恢復本地倉庫的內容
先git log 查看提交歷史中的commitid
git reset <commitid> --退到工做空間,即把commit 回退 、add 回退,工做目錄裏面的修改還在
git reset --soft <commitid> --退到暫存區,即把commit 回退 add 不回退
git reset --mixed <commitid> --退到工做空間,默認行爲,即把commit 回退 add 不回退
************不可輕用,會丟失工做區和暫存區的內容***********************
git reset --hard <commitid> --退到上次commit的位置,即把commit 回退 add 回退 工做空間回退
************不可輕用***********************
git reset 會丟失提交log,能夠用git reflog 查看, 再用git reset reflogid 恢復
d. 改動已經push --恢復本地倉庫的內容
先git log 查看提交歷史中的commitid
git reset <commitid> --退到工做空間,即把commit 回退 、add 回退,工做目錄裏面的修改還在,【git log 會丟失,恢復:git status 查看,working tree clean , 再git pull】
git reset --soft <commitid> --退到暫存區,即把commit 回退 add 不回退,【git log 會丟失,恢復:git status 查看,working tree clean , 再git pull】
git reset --mixed <commitid> --退到工做空間,默認行爲,即把commit 回退 add 不回退
************不可輕用,會丟失工做區和暫存區的內容***********************
git reset --hard <commitid> --退到上次commit的位置,即把commit 回退 add 回退 工做空間回退 【git log 會丟失,恢復:git pull】
************不可輕用***********************
git revert 也能夠恢復,但會添加一個新的提交
5.暫存工做區內容:
#能夠加註釋
git stash save 'comment'
#查看暫存的內容
git stash show
#查看暫存列表
git stash list
#應用全部的暫存內容
git stash apply
# 應用一條暫存,$是對應的序號
git stash apply stash@{$}
# 刪除一條暫存,$是對應的序號
git stash drop stash@{$}
#清除全部暫存
git stash clear
6. 用戶名配置
# fatal: unable to access錯誤時執行以下操做
# 1.清除緩存中的配置信息
# 運行一下命令緩存輸入的用戶名和密碼:
# git config --global credential.helper wincred
# 清除掉緩存在git中的用戶名和密碼
# git credential-manager uninstall
git config --global user.name shiyuan #設置用戶名
git config --global user.email shiyuan##@163.com #設置用戶郵箱
git config user.name shiyuan #設置本目錄的用戶名
git config user.email shiyuan##@163.com #設置本目錄的用戶郵箱
# 而後再push,輸入一次用戶名密碼後再執行2,緩存用戶、密碼
# 2.建立文件存儲GIT用戶名和密碼
# git config --global credential.helper store
# 執行完後查看%HOME%目錄下的.gitconfig文件,會多了一項: ****從新開啓git bash***
# [credential]
# helper = store
# 從新開啓git bash會發現git push時不用再輸入用戶名和密碼
TODO:rebase