github創建倉庫到本地使用
前期準備
// 註冊github賬號
// 地址:https://github.com/
// 配置密匙
// 地址:https://jingyan.baidu.com/article/414eccf6a330926b431f0ac6.html
// 創建倉庫git-test
// git/https 切換到git模式(避免每次重複密匙驗證)
// 確保已經安裝git bash,並打開
創建本地倉庫
// 在本地創建文件夾
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 [email protected]:webjimmylau/git-test.git
git push -u origin master
創建分支
// 最好統一先在github上創建分支
// 然後纔在本地git pull分支
git命令
文件夾
clear // 清空代碼
pwd // 顯示當前目錄
mkdir fileName // 創建文件夾
cd fileName // 進入文件夾
git init // 把這個目錄變成git可以管理的倉庫
文件
echo xxx >> text.txt // 創建文件並更改或直接更改文件內容
rm text.txt // 刪除文件
cat text.txt // 查看文件內容
git diff text.txt // 查看文件修改的內容
git diff HEAD -- text.txt // 查看工作區和版本庫裏面最新版本的區別
git reset HEAD . // 撤銷件到暫存區
git checkout -- text.txt // 撤銷修改文件內容 或 撤銷刪除文件
分支
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’模式,刪除後還能保留分支信息
版本查看
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 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
隱藏現場
git stash // 將當前的工作現場隱藏起來
git stash list // 查看隱藏的工作現場
git stash apply // 恢復工作現場
git stash drop // 刪除隱藏的一條工作現場記錄
git stash pop // 恢復並刪除
提交到本地
git status // 查看是否還有文件未提交
git add text.txt // 添加文件到暫存區
git commit -m 'xxx' // 把暫存區的文件提交到倉庫
git命令使用方法
1、創建/修改/提交
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" // 把暫存區裏面的內容提交到倉庫
2、版本回退
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內容
3、理解工作區與暫存區的區別
echo 444 >> readme.txt // 修改文件
echo test >> test.txt // 新增文件
git add readme.txt // 添加文件到暫存區
git add test.txt // 添加文件到暫存區
git commit -m "add files" // 把暫存區的文件提交到倉庫
4、撤銷修改
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不見了
5、刪除文件
echo b >> b.txt // 新建文件
git add b.txt // 添加文件到暫存區
git commit -m "change file" // 提交暫存區的文件到倉庫
rm b.txt // 刪除文件
git status // 查看文件狀態
git checkout -- b.txt // 撤銷刪除文件
6、遠程倉庫
// 如何添加遠程庫
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)
7、創建與合併分支
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 // 查詢被刪除的分支信息
8、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 // 恢復並刪除
9、多人協作
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分支