Github基本操作的学习与温习
GitHub是最先進的分布式版本控制工具,下面是我學習中總結的操作流程,僅供參考
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Git安裝
?????????????????? 下載git的windows版本并安裝,不予詳述(直接打開安裝包,按默認的流程一步步進行即可,任意位置點擊鼠標右鍵彈出git 字樣的選項時即為安裝成功)
?????????????????? 安裝成功后輸入下面命令進行設置
??????????????????????????? $ git config --global user.name "你的git賬號"
$ git config --global user.email "你注冊git賬號的郵箱"
Git操作:
?????????????????? ?創建版本庫
$ mkdir learngit //learngit為倉庫名,可以自己命名
$ cd learngit
$ pwd????? //顯示當前目錄
??????????????????????????? $ git init? //將目錄變為git管理的倉庫
$ git add 文件名????? //文件名是創建文件的名字
$ git commit -m "注釋"//-m后面提交的是文檔說明,這個必須要有,否則報錯
?????????????????? 修改版本庫:
$ git status
$ git diff 文件名
$ git log
$ git reset --hard HEAD^
$ git reset --hard num //num 為要回退到某個版本的版本號,部分即可
$ git reflog
$ git diff HEAD -- 文件名 //要查詢文件的名字
$ git checkout -- 文件名 //放棄修改的文件名稱
$ git reset HEAD 文件名
Git工作時候實際上是工作區->暫存區(stage)->分支(master為git自動創建的分支),HEAD為指向master 的一個指針。Git add實際上是將文件提交到了暫存區。Git commit是將暫存區的所有內容都提交到分支,可以先執行多個add,
再使用一個commit提交。
?????????????????? 如果直接將文件管理器中的文件刪除或者使用rm命令刪除,工作區和版本庫的內容就會不一致,此時:
$ git rm 文件名
$ git commit
$ git checkout -- 文件名
連接git網站:
$ ssh-keygen -t rsa -C "郵箱名"
有本地庫后創建遠程庫:
$ git remote add origin git@github.com:賬戶名/learngit.git
$ git push -u origin master
第一次推送時使用-u參數關聯,后面推送時候就可以簡化命令$ git push origin master
從遠程庫克隆庫
$ git clone git@github.com:賬戶名gitskill.git
$cd gitskill?????? //創建本地文件夾
$ls
創建與刪除分支:
$git checkout -b dev? //dev為另一個分支名,記住中間是一個橫杠
-b表示創建并切換
???????? ?????????????????? $ git brach
$ git checkout master//切換回master分支
$ git merge dev? //將dev分支合并到當前分支上來
$ git branch -d dev? //刪除dev分支
分支沖突:
?????????????????? 當創建一個新分支并且做出修改后回到原分支再次修改文件,此時git無法將兩個修改的文件進行快速合并,必須將某一個文件修改后或使其完全一致方可。查看分支合并情況:
??????????????????????????? $ git log --graph --pretty=oneline --abbrev-commit? //查看沖突分支的合并情況
No-ff模式(禁用fast forward模式)
??????????????????????????? Fast forward模式下合并分支會丟失分支信息,禁止后在執行合并分支操作時能從分支歷史上看到分支信息。 禁用模式下執行合并命令:
??????????????????????????? $ git merge? --no-ff -m "注釋"
儲存工作狀態:
?????????????????? 在處理bug等必須暫時離開時,可以保存現在的工作狀態
$ git stash?? //存儲當前分支
$ git checkout master??? // 轉到master分支
$ git checkout –b issue-101?? //創建新的分支issue-101來修復bug
$ git checkout master?? //切換回master
$ git merge –no-ff –m “注釋” issue-101 //修改完bug的分支合并到master中去,并保留痕跡
$ git branch –d issue-101?? //刪除臨時分支
??????????????????????????? 4.切換回原來的工作狀態
???????????????????????????????????? $ git checkout dev
此時工作區是沒有東西的,原來的stash內容被存在別的地方,可以用$ git stash list來查看。此時工作現場還在,此時可以執行:
?????? $ git stash apply?? // 恢復存儲內容
?????? $ git stash drop??? // 刪除儲存的工作狀態文件
或者一次恢復并刪除工作狀態文件:
?????? $git stash pop
刪除分支:
當分支創建完畢即將合并時,突然不使用這個分支了,要將其刪除。此時使用強行刪除命令(此時沒有合并,不能使用git branch來刪除分支):
??????????????????????????? $ git branch –D feature?? //feature 是要刪除的分支名字
多人協作:
$ git remote????
或者使用命令
$ git remove –v ???//查看遠程庫更詳細的內容
$ git push origin 分支名?? // origin是遠程庫的默認名稱
注意:
l? Master 是主分支,需要時刻與遠程庫同步
l? Dev為開發分支,也需要同步
l? Bug 分支只用于本地修復bug,沒必要推送
l? Feature 是新功能開發分支,這個取決于是否與他人合作開發
$ git branch –set-upstream dev origin/dev? //指定本地和遠程庫dev文件的鏈接
$ git pull????????????????? //抓取網上的dev文件
創建標簽:
??????????????????????????? 為每一個分支創建一個版本號:
?????????????????????????????????????????????? $ git branch??? //查看分支
?????????????????????????????????????????????? $ git checkout master?? //轉到需要加版本號的標簽
?????????????????????????????????????????????? $ git tag v1.0??? //為分支創建版本號標簽,v1.0為版本號
?????????????????????????????????????????????? $ git tag????? //查看所有版本號標簽
?????????????????????????????????????????????? $ git show tag??? //查看所有版本號標簽的詳細信息
創建帶有說明的標簽:
?????????????????? $ git tag –a 版本號? -m “說明文字“
看版本號的說明文字
?????????????????? $ git show 版本號?
操作標簽:
???????? ?刪除標簽:
???????????????????????????????????? $ git tag –d 版本號
???????? 推送標簽到遠程:
???????????????????????????????????? $ git push origin 版本號
???????? 推送所有標簽名到遠程:
???????????????????????????????????? $ git push origin –tags
???????? 如果標簽已經推送到遠程,可以先刪除本地的,再 刪除遠程的
???????????????????????????????????? $ git tag –d 版本號? //? 刪除本地的
???????????????????????????????????? $ git push origin :refs/tags/版本號
轉載于:https://www.cnblogs.com/wuheng1991/p/5443001.html
總結
以上是生活随笔為你收集整理的Github基本操作的学习与温习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JDK的目录结构及结构图
- 下一篇: DB Intro - MongoDB U