Git基本操作

1. 創(chuàng)建SSH key

 ssh-keygen -t rsa -C "youremail@example.com"

2. 更新代碼

   git pull
   git fetch  沒(méi)有merge的pull  沒(méi)用過(guò)這個(gè),不知道好用不

3. 添加文件

  git add .   暫存新增的和修改的文件,不包括已刪除的文件(僅限當(dāng)前目錄以及子目錄)
  git add -u  暫存修改的和刪除的文件,不包括新增的文件
  git add -A 暫存所有文件,包括新增的,修改的,已刪除的文件
  git add -p  暫存一部份,會(huì)一直提示(y/n)選擇是否暫存,很麻煩

4. 提交文件

  git commit -m “本次提交說(shuō)明” (這里如果不加-m 會(huì)強(qiáng)制跳轉(zhuǎn)到編輯器,在里邊第一行填寫(xiě),然后保存即可)
  git commit -am “本次提交說(shuō)明”  (add 和commit的結(jié)合體,,省略了add步驟)
  ***下面這個(gè)命令盡量不要使用或者只有自己開(kāi)發(fā)的時(shí)候,否則會(huì)給隊(duì)友帶來(lái)災(zāi)難(臥槽明明更新了的,怎么沒(méi)了??????)
  git commit --amend -m“本次提交說(shuō)明”   (重新提交,最終只會(huì)有一次提交,第二次的提交會(huì)覆蓋第一次的提交結(jié)果,適用于提交完了才發(fā)現(xiàn)有幾個(gè)文件沒(méi)有添加或者提交信息填寫(xiě)錯(cuò)誤的情況)
  git commit -p (提交一部分代碼,需要手動(dòng)確認(rèn)是否提交   y/n)

5.推送到遠(yuǎn)程分支

  git push origin 分支      推送本地當(dāng)前分支到遠(yuǎn)程對(duì)應(yīng)分支(通常是master)
  git push    origin     本地分支:遠(yuǎn)程分支(指定提交的本地分支和遠(yuǎn)程分支)

6.本地分支與遠(yuǎn)程分支建立關(guān)聯(lián)

  git branch --set-upstream 分支 origin/分支
   這個(gè)命令,可以建立本地分支與遠(yuǎn)程分支的聯(lián)系,以后在push的時(shí)候不用每次都指定分支到了,即直接輸入  git push,省略了origin 分支

7.git忽略某些文件

  忽略規(guī)則
  以斜杠“/”開(kāi)頭表示目錄;
  以星號(hào)“*”通配多個(gè)字符;
  以問(wèn)號(hào)“?”通配單個(gè)字符
  以方括號(hào)“[]”包含單個(gè)字符的匹配列表;
  以嘆號(hào)“!”表示不忽略(跟蹤)匹配到的文件或目錄;

一般情況下,我們應(yīng)該在創(chuàng)建項(xiàng)目之前,建好忽略文件,忽略掉應(yīng)該忽略的文件;

但是,有時(shí)候我們需要臨時(shí)添加一些忽略文件,這個(gè)時(shí)候就需要修改 .gitignore文件,以為該文件已經(jīng)被git追蹤,所以我們還要從git版本控制器中將其移除,用下面的命令:

  git rm --cached 文件名    或者       git rm --cached  -r   文件夾   (-r  表示遞歸)

注意:這樣會(huì)將該文件從git倉(cāng)庫(kù)移除,所以開(kāi)發(fā)人員都做好備份
使用完此命令后,我們需要將修改后的.gitignore和刪除的這個(gè)文件,一并push到git遠(yuǎn)程倉(cāng)庫(kù),然后所有開(kāi)發(fā)人員做好自己的備份,然后pull更新,
這樣更新下來(lái)會(huì)將該文件刪除掉,,然后我們需要自己將備份的文件拷貝進(jìn)項(xiàng)目,以后該文件就不會(huì)再被git追蹤了.以后修改該文件,需要復(fù)制粘貼給大家了.
可能有點(diǎn)麻煩,但是我理解的就是這樣的了.

8.其他一般用得著的指令

*設(shè)置一些快捷指令

  git config --global alias.st status  使用git st 代替 git status 命令
  git config --global alias.co checkout 使用git co 代替git checkout命令
  git config --global alias.ci commit 使用git ci 代替 git commit命令
  以此類(lèi)推

*其他的一些設(shè)置

  git config -l 或 git config --list 列舉所有g(shù)it的配置
  git config --global  color.ui true 讓git顯示顏色,
  設(shè)置commit中的姓名和email,去掉 --global參數(shù)則為針對(duì)每個(gè)repo單獨(dú)設(shè)定姓名和郵箱
  git config --global user.name "your name"
  git config --global user.email "your email"

  大小寫(xiě)問(wèn)題:
  git config core.ignorecase false        (不推薦)關(guān)閉git忽略大小寫(xiě)配置,即可檢測(cè)到大小寫(xiě)名稱(chēng)更改
  如果遇到大小寫(xiě)問(wèn)題(保證core.ignorecase true) 調(diào)用git mv ABC.java Abc.java  (git status 提示 renamed: ABC.java -> Abc.java)commit  push 即可
  core.ignorecase不為true,同事更新的時(shí)候會(huì)提示(error: The following untracked working tree files would be overwritten by merge:.......),改為false即可

  總結(jié):
      --global 全局         --local  本倉(cāng)庫(kù)
          增配置 git config --global --add configName configValue
          刪配置 git config  --global --unset configName   (只針對(duì)存在唯一值的情況)
          改配置 git config --global configName configValue
          查配置 git config --global configName
  
   git log -n  僅顯示最近n條提交
   git log -p filename    查看文件的每一個(gè)詳細(xì)的歷史修改,如果沒(méi)有-p選項(xiàng),只顯示提交記錄,不顯示文件內(nèi)容修改,git log -p -3 filename 顯示最近的3次提交。

以下內(nèi)容,為日志顯示的常用參數(shù)

-p
按補(bǔ)丁格式顯示每個(gè)更新之間的差異。

--stat
顯示每次更新的文件修改統(tǒng)計(jì)信息。

--shortstat
只顯示 --stat 中最后的行數(shù)修改添加移除統(tǒng)計(jì)。

--name-only
僅在提交信息后顯示已修改的文件清單。

--name-status
顯示新增、修改、刪除的文件清單。

--abbrev-commit
僅顯示 SHA-1 的前幾個(gè)字符,而非所有的 40 個(gè)字符。

--relative-date
使用較短的相對(duì)時(shí)間顯示(比如,“2 weeks ago”)。

--graph
顯示 ASCII 圖形表示的分支合并歷史。

--pretty
使用其他格式顯示歷史提交信息??捎玫倪x項(xiàng)包括 oneline,short,full,fuller 和 format(后跟指定格式)。

9.對(duì)于android項(xiàng)目,git需要忽略的文件

- .idea 文件夾
- .gradle 文件夾
- 所有的 build 文件夾
- 所有的 .iml 文件
- local.properties 文件

10.特殊操作(慎用)

 1)
git clean 參數(shù)  
-n -----顯示將要?jiǎng)h除的文件和目錄; 
-x -----刪除忽略文件已經(jīng)對(duì)git來(lái)說(shuō)不識(shí)別的文件 
-d -----刪除未被添加到git的路徑中的文件 
-f -----強(qiáng)制運(yùn)行
2)
git mv -f [你想要?jiǎng)h掉的文件] [你想要留下的文件]
git mv -f a.js A.js
等同于:
git rm a.js
git add A.js
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Git 是一個(gè)以命令行為主的免費(fèi)開(kāi)源的分布式版本控制系統(tǒng),用于敏捷高效的處理任何或大或小的項(xiàng)目。是Linus To...
    sunnyaxin閱讀 944評(píng)論 7 6
  • 原創(chuàng)文章&經(jīng)驗(yàn)總結(jié)&從校招到A廠一路陽(yáng)光一路滄桑 詳情請(qǐng)戳www.codercc.com 1. git簡(jiǎn)介 在實(shí)際...
    你聽(tīng)___閱讀 1,659評(píng)論 0 8
  • Git時(shí)間——初識(shí)版本控制工具 安裝 在Git官網(wǎng)下載相應(yīng)系統(tǒng)和版本的安裝包。 配置身份,區(qū)分誰(shuí)提交了代碼 查看是...
    大荒里種菜閱讀 276評(píng)論 0 1
  • 1. git簡(jiǎn)介 工作區(qū):本地電腦存放項(xiàng)目文件的地方; 暫存區(qū):在使用git管理項(xiàng)目文件的時(shí)候,其本地的項(xiàng)目文件會(huì)...
    前端小兵閱讀 311評(píng)論 0 1
  • 前沿:1. 本文是學(xué)習(xí) 廖雪峰git教程 時(shí)的一些筆記,大家想看詳細(xì)版請(qǐng)閱讀廖雪峰git教程2.本文中使用到的系統(tǒng)...
    前端嘮嘮嗑閱讀 315評(píng)論 0 0

友情鏈接更多精彩內(nèi)容