git 經常使用命令

github建立倉庫到本地使用

前期準備html

// 註冊github帳號
// 地址:https://github.com/

// 配置密匙
// 地址:https://jingyan.baidu.com/article/414eccf6a330926b431f0ac6.html

// 建立倉庫git-test
// git/https 切換到git模式(避免每次重複密匙驗證)

// 確保已經安裝git bash,並打開

建立本地倉庫git

// 在本地建立文件夾
mkdir git-test
// 複製代碼,如如下示例,粘貼到git bash運行
echo "# git-test" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:webjimmylau/git-test.git
git push -u origin master

建立分支github

// 最好統一先在github上建立分支
// 而後纔在本地git pull分支

git命令

文件夾操做web

clear                                         // 清空代碼
pwd                                           // 顯示當前目錄
mkdir fileName                                // 建立文件夾
cd fileName                                   // 進入文件夾
git init                                      // 把這個目錄變成git能夠管理的倉庫

文件操做bash

echo xxx >> text.txt                          // 建立文件並更改或直接更改文件內容
rm text.txt                                   // 刪除文件
cat text.txt                                  // 查看文件內容
git diff text.txt                             // 查看文件修改的內容
git diff HEAD -- text.txt                     // 查看工做區和版本庫裏面最新版本的區別

// 新增到暫存區
git add -u                                    // 新增、修改
git add .                                     // 修改、刪除
git add -A                                    // 新增、修改、刪除、替換

// git clean 刪除未跟蹤文件
git clean -f                                  // 刪除 untracked files
git clean -fd                                 // 連 untracked 的目錄也一塊兒刪掉
git clean -xfd                                // 連 gitignore 的untrack 文件/目錄也一塊兒刪掉,
                                              // 慎用,通常這個是用來刪掉編譯出來的 .o之類的文件用的
// 在用上述 git clean 前,防止重要文件被誤刪,
// 強烈建議加上 -n 參數來先看看會刪掉哪些文件
git clean -nf
git clean -nfd
git clean -nxfd

文件撤銷app

// 撤銷本地
git checkout -- filename
git checkout .

// 撤銷暫存區
git reset HEAD filename
git reset HDAD .

// 撤銷本地倉庫
git reset commit-id                            // 保留(撤回前的分支提交的更改)在本地
git reset --hard commit-id                     // 不保留

提交到暫存區、本地倉庫、遠程倉庫url

git status                                    // 查看是否還有文件未提交
git add -A                                    // 添加全部文件到暫存區
git commit -m 'xxx'                           // 把暫存區的文件提交到倉庫
git pull                                      // 拉取遠程倉庫
git push origin master                        // 把本地master分支的最新修改推送到github遠程倉庫上

遠程倉庫操做code

git clone git-test(url)                       // 克隆git-test項目
git remote add origin git-test(url)           // 關聯一個遠程庫
git pull origin master                        // 拉取成功 而後手動處理衝突
git branch --set-upstream master              // 解決分支衝突 
git push -u origin master                     // 把本地master分支和遠程master分支關聯起來
                                              // 並把本地master分支的最新修改推送到github上
git push origin master                        // 把本地master分支的最新修改推送到github上
git push origin :dev                          // 在遠程分支上刪除dev分支
git remote                                    // 查看遠程庫的信息 如:origin
git remote -v                                 // 查看遠程庫的詳細信息 如:origin

分支操做htm

git branch                                    // 查看分支 *表明當前分支
git branch dev                                // 建立分支
git branch -d dev                             // 刪除分支
git branch -D dev                             // 強行刪除分支
git checkout dev                              // 切換分支
git checkout -b dev                           // 建立並切換分支
git checkout -b dev origin/dev                // 建立並拉取遠程分支dev並切換分支
git merge dev                                 // 在當前分支上合併dev內容
git merge –no-ff  -m 'xxx' dev                // 合併分支,禁用‘Fast forward’模式,刪除後還能保留分支信息

版本查看rem

git reflog                                    // 查看所有版本(包括回滾後看不到的版本、誤操做等)
git log                                       // 詳細查看分支提交歷史(當前版本的祖先版本)
git log --pretty=oneline                      // 簡單查看分支提交歷史(去除做者和日期)
git log --pretty=oneline --abbrev-commit      // 查看精簡分支提交歷史(縮小版本號長度)
git log --graph                               // 查看分支刪除信息

版本回滾

git reset --hard HEAD^                        // 回滾到上一個版本
git reset --hard HEAD~100                     // 回滾到上100個版本
git reset --hard scd51f                       // 回滾到某版本

儲藏操做

git stash                                     // 將當前的工做現場隱藏起來
git stash list                                // 查看隱藏的工做現場
git stash apply                               // 恢復工做現場
git stash drop                                // 刪除隱藏的一條工做現場記錄
git stash pop                                 // 恢復並刪除

git命令使用方法

一、建立/修改/提交

cd D:                                         // 進入D盤
mkdir www                                     // 建立文件夾www
cd www                                        // 進入文件夾www
mkdir git-test                                // 建立文件夾git-test
cd git-test                                   // 進入文件夾git-test
pwd                                           // 顯示當前目錄
git init                                      // 把這個目錄變成git能夠管理的倉庫
echo 111 >> readme.txt                        // 建立readme.txt文件 並添加內容111
git add readme.txt                            // 添加readme.txt文件到暫存區裏面去
git commit -m "add file"                      // 把暫存區的文件提交到倉庫
git status                                    // 查看是否還有文件未提交
echo 222 >> readme.txt                        // 建立readme.txt文件並更改或直接更改readme.txt文件內容
git status                                    // 查看是否還有文件未提交
git diff readme.txt                           // 查看readme.txt修改了什麼內容
git add readme.txt                            // 添加readme.txt文件到暫存區裏面去
git commit -m "change file"                   // 把暫存區裏面的內容提交到倉庫

二、版本回退

echo 333 >> readme.txt                
git add readme.txt                
git commit -m "change file"
git log                                       // 查看版本歷史記錄
git log --pretty=oneline                      // 查看精簡版本歷史記錄
git reset --hard HEAD^                        // 退回到上一個版本    ^上一個 ^^上兩個 ~100上100個
cat readme.txt                                // 查看readme.txt內容
git log                                       // 查看版本歷史記錄,被覆蓋的最新版本333已經看不到,按q退出查詢
git reflog                                    // 能夠看到333內容的版本信息和對應的版本號
git reset --hard xxxxxx                       // 恢復到333內容的版本
cat readme.txt                                // 查看readme.txt內容

三、理解工做區與暫存區的區別

echo 444 >> readme.txt                        // 修改文件
echo test >> test.txt                         // 新增文件
git add readme.txt                            // 添加文件到暫存區
git add test.txt                              // 添加文件到暫存區
git commit -m "add files"                     // 把暫存區的文件提交到倉庫

四、撤銷修改

echo 555 >> readme.txt                        // 修改文件
cat readme.txt                                // 查看文件
git checkout -- readme.txt                    // 把文件在工做區作的修改所有撤銷
git 666 >> readme.txt                         // 修改文件
git add readme.txt                            // 添加文件到暫存區
echo 777 >> readme.txt                        // 修改文件
cat readme.txt                                // 查看文件
git checkout -- readme.txt                    // 把文件暫存區的修改保留,把工做區爲修改所有撤銷
cat readme.txt                                // 666還有,777不見了

五、刪除文件

echo b >> b.txt                               // 新建文件
git add b.txt                                 // 添加文件到暫存區
git commit -m "change file"                   // 提交暫存區的文件到倉庫
rm b.txt                                      // 刪除文件
git status                                    // 查看文件狀態
git checkout -- b.txt                         // 撤銷刪除文件

六、遠程倉庫

// 如何添加遠程庫
git remote add origin git-test(url)
git push -u origin master                     // 把本地master分支和遠程master分支關聯起來
                                              // 並把本地master分支的最新修改推送到github上
git push origin master                        // 把本地master分支的最新修改推送到github上

// 如何從遠程克隆
git clone git-test(url)

七、建立與合併分支

git branch                                    // 查看分支 *表明當前分支
git branch dev                                // 建立分支
git checkout dev                              // 切換分支
git checkout -b dev                           // 建立並切換分支
cat readme.txt
echo 777 >> readme.txt
cat readme.txt
git add readme.txt
git commit -m 'xxx'
git checkout master
cat readme.txt                                // 只有以前的內容666
git merge dev                                 // 在當前分支上合併dev內容
cat readme.txt                                // master上多了內容777
git branch -d dev                             // 刪除dev分支

// 如何解決衝突
git merge fenzhi1                             // 刪除衝突,再提交

// 分支管理策略 
git merge –no-ff  -m 'text' dev               // 合併分支,禁用‘Fast forward’模式,刪除後還能保留分支信息
git branch -d dev            
git log --graph --pretty=oneline --abbrev-commit    // 查詢被刪除的分支信息

八、bug分支

git status                                    // 有看到新增和修改的文件
git stash                                     // 將當前的工做現場隱藏起來
git status                                    // 隱藏以後,查看狀態,是乾淨的
git checkout -b issue-404                     // 建立和切換分支到issue-404
git add readme.txt                            // 把文件添加到暫存區
git commit -m 'fix some bug'                  // 把暫存區的文件提交到倉庫
git checkout master                           // 切換分支到master
git merge --no-ff -m 'merge issue-404' issue-404    // 合併issue-404分支
cat readme.txt                                // 當前master分支能夠看到issue-404分支的內容,徹底一致
git branch -d issue-404                       // 在master分支上刪除issue-404臨時分支
git checkout dev                              // 切換到dev分支
git status                                    // 查看狀態,仍是乾淨的
git stash list                                // 查看隱藏的工做現場
git stash apply                               // 恢復工做現場
git stash drop                                // 刪除隱藏的一條工做現場記錄
git stash pop                                 // 恢復並刪除

九、多人協做

git clone git-test(url)                       // 克隆git-test項目
git pull origin master                        // 拉取master分支
git push origin master                        // 推送master分支
git pull origin dev                           // 拉取失敗
git branch --set-upstream dev                 // 解決分支衝突
git pull origin dev                           // 拉取成功 而後手動處理衝突
git push origin dev                           // 推送dev分支

ps:歡迎指出問題或補充。。

相關文章
相關標籤/搜索