Git基本操作

1. 創(chuàng)建SSH key

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

2. 更新代碼

   git pull
   git fetch  沒有merge的pull  沒用過這個,不知道好用不

3. 添加文件

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

4. 提交文件

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

5.推送到遠程分支

  git push origin 分支      推送本地當前分支到遠程對應分支(通常是master)
  git push    origin     本地分支:遠程分支(指定提交的本地分支和遠程分支)

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

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

7.git忽略某些文件

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

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

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

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

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

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

*設置一些快捷指令

  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命令
  以此類推

*其他的一些設置

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

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

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

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

-p
按補丁格式顯示每個更新之間的差異。

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

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

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

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

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

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

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

--pretty
使用其他格式顯示歷史提交信息。可用的選項包括 oneline,short,full,fuller 和 format(后跟指定格式)。

9.對于android項目,git需要忽略的文件

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

10.特殊操作(慎用)

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

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

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

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