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