chrom禁用浏览器回退按钮不管用_什么?作为程序员你都工作了还不会用Git
git管理文件和代碼的使用
?作者:hackett
?
?微信公眾號:加班猿
?
Git是一個免費的開源 分布式版本控制系統,旨在快速高效地處理從小型到大型項目的所有內容。Git易于學習, 占地面積小,具有閃電般的快速性能。它具有Subversion,CVS,Perforce和ClearCase之類的SCM工具,具有廉價的本地分支,方便的暫存區域和 多個工作流等功能。--《Git官網》
依稀還記得當初寫論文的時候,保存的論文文檔是這樣子的,代碼文件夾是這樣的。根據需求刪除或修改一些東西后另存為另一個文件,過一段時間后,想找回被刪除的文字/代碼,但是不知道保存在哪個文件里去了,想保留最新的一個把其他都刪除掉,又怕哪天會用上不敢刪除,真的煩人,這個時候就輪到我們強大的Git出場了,順便記錄一下自己從廖雪峰的官方網站Git教程的學習。
我工作中常用的指令
1、如果你沒有項目的代碼,組長一般都會給你一個鏈接,這時候你就可以用git命令git clone下來
git clone https://github.com/CodingEmbedded/mygit.git2、接到主管的需求(此刻的我是想拿我的ZFB收款碼出來的),一般來說都是新建一個分支的去開發的
git check -b 分支名3、此時就可以愉快地寫bug了,有時候同事/主管問你改了什么問題,你改了挺多不記得可以先status再diff一下可以看到我們修改了那些文件增刪了那些內容
git statusgit diff4、寫好之后就可以先git add再git commit進行本地代碼的提交
git addgit commit -m "message"5、提交到遠程倉庫需要用push
git push6、假如在你寫的時候有人提交了代碼,這時候你需要pull最新的代碼下來
git pull如果沒有沖突就可以提交代碼(有沖突的話就按照Git提示做修改再提交)
7、你的代碼有一個致命bug,并且已經提交到了遠程倉庫,版本回退的方法: 先用下面命令找到要回退的版本的commit_id:
git reflog然后回退版本:
git reset --hard commit_id最后強制推送到遠程分支:
git push -f可以看到圖1是提交了一個記錄為“add or del”,圖2圖3為回退版本操作,圖4圖5對比可以看出git已經回退了
?圖1
?圖2
?
?圖3
?圖4
?圖5
一、創建版本庫
1、新建一個空目錄(如下我是E盤 –> code目錄下新建一個test版本庫)
2、通過git init命令把這個目錄變成Git可以管理的倉庫
3、ls -ah查看.git>目錄和./>../>,那是因為.git這個目錄默認是隱藏的。
二、添加文件到倉庫
1、編寫一個文件 text.txt
2、使用命令git add <file>,可反復多次使用,添加多個文件,添加全部文件使用git add -A
3、使用命令git commit -m <message>,完成,message為提交的文本信息
三、查看工作狀態和修改的文件
1、要隨時掌握工作區的狀態,使用git status命令。
2、如果git status告訴你有文件被修改過,用git diff可以查看修改內容。
四、git的版本回退
1、版本回退前,用git log可以查看提交歷史,以便確定要回退到哪個版本。
2、HEAD指向的版本就是當前版本,因此,Git允許我們在版本的歷史之間回退,使用命令
git reset --hard commit_id。
3、Git必須知道當前版本是哪個版本,在Git中,用HEAD表示當前版本上一個版本就是HEAD^,上上一個版本就是HEAD^^,當然往上100個版本寫100個^比較容易數不過來,所以寫成HEAD~100。
4、要重返未來,用git reflog查看命令歷史,以便確定要回到未來的哪個版本。使用命令git reset --hard commit_id。
五、暫存區
提交一個readme.txt的過程
六、管理修改
Git是如何跟蹤修改的,每次修改,如果不用git add到暫存區,那就不會加入到commit中。
七、撤銷修改
場景1:當你改亂了工作區某個文件的內容,想直接丟棄工作區的修改時,用命令git checkout -- file。
場景2:當你不但改亂了工作區某個文件的內容,還添加到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset HEAD <file>,就回到了場景1,第二步按場景1操作。
場景3:已經提交了不合適的修改到版本庫時,想要撤銷本次提交,參考四、git的版本回退一節(用git log查看命令歷史,以便確定要回到未來的哪個版本。使用命令git reset --hard commit_id),不過前提是沒有推送到遠程庫。
八、刪除文件
命令git rm用于刪除一個文件。如果一個文件已經被提交到版本庫,那么你永遠不用擔心誤刪,但是要小心,你只能恢復文件到最新版本,你會丟失*最近一次提交后你修改的內容*。
git checkout -- <file>其實是用版本庫里的版本替換工作區的版本,無論工作區是修改還是刪除,都可以“一鍵還原”。
九、添加遠程庫
第一步:在git下創建SSH Key。在用戶主目錄下,看看有沒有.ssh目錄,如果有,再看看這個目錄下有沒有id_rsa和id_rsa.pub這兩個文件,如果已經有了,可直接跳到下一步。如果沒有,打開Shell(Windows下打開Git Bash),創建SSH Key:
$ssh-keygen -t rsa -C "youremail@example.com"
你需要把郵件地址換成你自己的郵件地址,然后一路回車,使用默認值即可,由于這個Key也不是用于軍事目的,所以也無需設置密碼。
如果一切順利的話,可以在用戶主目錄里找到.ssh目錄,里面有id_rsa和id_rsa.pub兩個文件,這兩個就是SSH Key的秘鑰對,id_rsa是私鑰,不能泄露出去,id_rsa.pub是公鑰,可以放心地告訴任何人。
第二步:登陸GitHub,打開“Settings”,點“SSH and GPG keys”,填上任意Title,在Key文本框里粘貼id_rsa.pub文件的內容,點“Add Key”,你就應該看到已經添加的Key:
第二步:創建一個GitHub賬號,添加一個空的倉庫。首先,登陸GitHub,然后,在右上角找到“new repository”按鈕,創建一個新的倉庫:在Repository name填入倉庫名,其他保持默認設置,點擊“Create repository”按鈕,就成功地創建了一個新的Git倉庫:
目前,在GitHub上的這個倉庫還是空的,GitHub告訴我們,可以從這個倉庫克隆出新的倉庫,也可以把一個已有的本地倉庫與之關聯,然后,把本地倉庫的內容推送到GitHub倉庫。
現在,我們根據GitHub的提示,在本地的倉庫下運行命令:git remote add origin + ssh鏈接
使用命令git push -u origin master將內容推送上去。
注意:檢查git的配置文件的郵箱還有用戶名還有URL是否正確。才能進行下一步操作。
要關聯一個遠程庫,使用命令git remote add origin git@server-name:path/repo-name.git;關聯后,使用命令git push -u origin master第一次推送master分支的所有內容;此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改
十、從遠程庫克隆
要克隆一個倉庫,首先必須知道倉庫的地址,然后使用git clone+ ssh鏈接命令克隆。
Git支持多種協議,包括https,但通過ssh支持的原生git協議速度最快。
十一、創建與分支(Git鼓勵大量使用分支)
查看分支:git branch
創建分支:git branch <name>
切換分支:git checkout <name>
創建+切換分支:git checkout -b <name>
合并某分支到當前分支:git merge <name>
刪除分支:git branch -d <name>
十二、解決沖突
當Git無法自動合并分支時,就必須首先解決沖突。解決沖突后,再提交,合并完成。解決沖突就是把Git合并失敗的文件手動編輯為我們希望的內容,再提交。用git log --graph命令可以看到分支合并圖。
十三、分支管理策略
準備合并dev分支,請注意--no-ff參數,表示禁用Fast forward,git merge --no-ff -m "merge with no-ff" dev 因為本次合并要創建一個新的commit,所以加上-m參數,把commit描述寫進去。
十四、bug分支
修復bug時,我們會通過創建新的bug分支進行修復,然后合并,最后刪除;當手頭工作沒有完成時,先把工作現場git stash一下,然后去修復bug,修復后,再git stash pop,回到工作現場。
十五、feature分支
開發一個新feature,最好新建一個分支;如果要丟棄一 個沒有被合并過的分支,可以通過git branch -D <name>強行刪除。
十六、多人協作
查看遠程庫信息,使用git remote -v;
本地新建的分支如果不推送到遠程,對其他人就是不可見的;
從本地推送分支,使用git push origin branch-name,如果推送失敗,先用git pull抓取遠程的新提交;
在本地創建和遠程分支對應的分支,使用git checkout -b branch-name origin/branch-name,本地和遠程分支的名稱最好一致;
建立本地分支和遠程分支的關聯,使用git branch --set-upstream branch-name origin/branch-name;
從遠程抓取分支,使用git pull,如果有沖突,要先處理沖突。
十七、創建標簽
命令git tag <tagname>用于新建一個標簽,默認為HEAD,也可以指定一個commit id;
命令git tag -a <tagname> -m "blablabla..."可以指定標簽信息;
命令git tag可以查看所有標簽
用命令git show <tagname>可以看到說明文字
注意:標簽總是和某個commit掛鉤。如果這個commit既出現在master分支,又出現在dev分支,那么在這兩個分支上都可以看到這個標簽。
十八、操作標簽
命令git push origin <tagname>可以推送一個本地標簽;
命令git push origin --tags可以推送全部未推送過的本地標簽;
命令git tag -d <tagname>可以刪除一個本地標簽;
命令git push origin :refs/tags/<tagname>可以刪除一個遠程標簽。 最后總結一下Git的常用命令:
- mkdir XX (創建一個空目錄 XX指目錄名)
- pwd 顯示當前目錄的路徑。
- git init 把當前的目錄變成可以管理的git倉庫,生成隱藏.git文件。
- git add XX 把xx文件添加到暫存區去。
- git commit –m “XX” 提交文件 XX是提交的注釋。
- git status 查看倉庫狀態
- git diff XX 查看XX文件修改了那些內容
- git log 查看歷史記錄
- git reset --hard HEAD^或者git reset --hard HEAD~
回退到上一個版本(使用git reset –hard commit_id回退到commit_id的指定版本 ) - cat XX 查看XX文件內容
- git reflog 查看歷史記錄的版本號id
- git checkout -- XX 把XX文件在工作區的修改全部撤銷。
- git rm XX 刪除XX文件
- git remote add origin + SSH鏈接關聯一個遠程庫
- git push –u(第一次要用-u 以后不需要) origin master 把當前master分支推送到遠程庫
- git clone + SSH鏈接 從遠程庫中克隆
- git checkout –b dev 創建dev分支 并切換到dev分支上
- git branch 查看當前所有的分支
- git checkout master 切換回master分支
- git merge dev 在當前的分支上合并dev分支
- git branch –d dev 刪除dev分支
- git branch name 創建分支
- git fecth 手動拉取遠程倉庫更新的信息
- git stash 把當前的工作隱藏起來 等以后恢復現場后繼續工作
- git stash list 查看所有被隱藏的文件列表
- git stash apply 恢復被隱藏的文件,但是內容不刪除
- git stash drop 刪除文件
- git stash pop 恢復文件的同時 也刪除文件
- git remote 查看遠程庫的信息
- git remote –v 查看遠程庫的詳細信息
- git push -u origin/master Git將會強制提交到master分支上
- git --amend 簡單地來說,可以理解成對最后一次提交做修正。<前提是當前最后一次提交沒有merge>
參考文獻
如果你覺得文章還不錯,記得"點贊關注"
關注我的微信公眾號【 加班猿 】可以獲取更多內容
總結
以上是生活随笔為你收集整理的chrom禁用浏览器回退按钮不管用_什么?作为程序员你都工作了还不会用Git的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “西邮漫记”--自由照耀中国
- 下一篇: matlab获得帮助的途径,在MATLA