GIT
git操作原理
基本命令
命令 | 含義 | ||
---|---|---|---|
$ git init | 初始化本地倉庫 | git在.git文件內管理版本 | |
$ git clone <遠程倉庫的網址> | 默認在當前目錄下創建和版本庫名相同的文件夾並下載版本到該文件夾下 | ||
$ git clone <遠程倉庫的網址> <本地目錄> | 指定本地倉庫的目錄 | ||
$ git clone <遠程倉庫的網址> -b <分支名稱> <本地目錄> | -b 指定要克隆的分支,默認是master分支 | ||
$ git status | 查看本地倉庫的狀態 | ||
$ git status -s | 以簡短模式查看本地倉庫的狀態 | 第一列是文件的狀態,第二列是對應的文件 | A 新增,M 修改,D 刪除,?? 未添加到Git中 |
$ git add <文件路徑> | 把指定的文件添加到暫存區中 | ||
$ git add --update/-u [<文件路徑>] | 添加所有修改、已刪除的文件到暫存區中 | ||
$ git add -A/–all [<文件路徑>] | 添加所有修改、已刪除、新增的文件到暫存區中,省略 <文件路徑> 即爲當前目錄 | $ git add . 只能夠提交當前目錄或者它後代目錄下相應文件,$ git add all無論在哪個目錄執行都會提交相應文件 | |
$ git reset [<文件路徑>] | 相當於將用 “git add” 命令更新到暫存區的內容撤出暫存區,可以指定文件 | ||
$ git checkout <文件路徑> | 替換掉本地的改動,新增的文件和已經添加到暫存區的內容不受影響 | ||
git commit -m ‘<message>’ | 暫存區文件添加至本地倉庫 | ||
git push <remote gitee address> <branchname> | 將指定分支推送到指定遠端(遠端不存在該分支則自動創建) | ||
git pull <remote> <branch> | 從指定遠端的指定分支拉取代碼 | ||
git branch | 查看已有分支列表和當前分支 | ||
git status | 查看當前工作區是否有untracked文件 及 暫存區是否有未commit的文件 | ||
git log [-- stat] | 查看歷史提交版本記錄[-- 展示內容變動] | ||
git checkout [-b] <branchname> | 切換到指定分支[- 創建指定分支] | ||
git merge | |||
git tag | |||
git tag -a <tagname> -m <tagmesage> | |||
git remote add <remotename> <remote gitee address> | |||
git remote remove <remotename> | |||
git stash | |||
git reset --hard HEAD^ | |||
git checkout <filename> | 撤銷工作區的修改,回退到最近一次commit或add |
命令使用
1. 遠程倉庫克隆到本地(僅包含.gitignore及a.txt)
2. 修改a.txt,新增b.txt,然後查看本地倉庫的狀態
Changes not staged for commit:源文件被git管理,但修改未被git管理
Untracked files: 沒有被git管理的文件
以上兩種情況均稱爲unstaged(未被git跟蹤)。
其中:未被Git跟蹤的狀態爲unstage狀態
3. 執行add命令把修改和新增提交到暫存區
4. 如果反悔,可回滾之前的所有操作(相當於沒有修改a.txt也沒有執行add命令)
首先把"git add --all" 命令更新到暫存區的內容撤出暫存區,可以指定文件,然後使用"git checkout <文件路徑>"替換掉本地的改動。
5. 執行pull操作時的衝突解決
此時執行pull命令
處理方式1:stash我本地的修改,a.txt內容變爲空,pull 遠程庫的修改,a.txt變爲其他同事修改的內容,stash pop
git自動把衝突合併到a.txt,需要手動解決衝突,之後進行add、commit、push操作即可。
處理方式2:commit我本地的修改,pull 遠程庫的修改,再處理衝突文件
注意:如果文件裏有<<<<<<<=======>>>>>>>這些衝突文件的字符,pull下來不會識別爲衝突文件
常見問題
git強制覆蓋本地命令: git fetch --all && git reset --hard origin/master && git pull