git經常使用操做

工做中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

相關文章
相關標籤/搜索