git與sourcetree

本帖最後由 3ldk 於 2015-1-28 04:29 編輯

最近用git出左幾個嚴重問題
唔知有無辦法解決?


1. 岩岩唔小心commit一個成G既video file上git, 搞到成個repo大左成G, 就算delete左個file, 只要個repo有依個history就細唔返, 我係用sroucetree的, 搵左好耐都搵唔到可以點樣delete左個hisotory, 請問有無得delete?

2. 接上面問題, 假如我唔單只係commit左, 仲push埋上去, 咁又可以點解決?

3. fetch同pull其實有乜分別? 我一直以為fetch只係check下server有幾多個changes, 而pull就係真正將D changes download落黎, 但我最近發現唔係咁, 我試過將個50MB的PDF push左上去, 但其他人只係fetch, 個project folder就已經大左50MB, 咁樣同pull仲有乜分別?

4. 假如我build左個咁既project出黎, 如果要create一個repo, 應該係邊個位create先至正確? 我一般係project folder create, 但我發現有好多位其實應該每個developer唔一樣先叫正確, 例如.idea依個folder入面, 每個人個IDE setting都係唔一樣的, 一個人改, 就會搞到其他人錯晒, 又例如build, out依兩個folder, sync比人好似無乜意思

helloworld/
├─.gradle
│  └─2.1
│      └─taskArtifacts
├─.idea
│  ├─artifacts
│  ├─copyright
│  ├─libraries
│  └─scopes
├─build
│  ├─classes
│  │  ├─main
│  │  │  └─com
│  │  │      └─hello
│  │  └─test
│  │      └─com
│  │          └─springapp
│  │              └─mvc
│  └─tmp
│      └─war
├─gradle
│  └─wrapper
├─out
│  └─artifacts
│      └─hello
│          └─exploded
│              └─hello-1.0.war
│                  ├─META-INF
│                  └─WEB-INF
│                      ├─classes
│                      │  └─com
│                      │      ├─hello
│                      │      └─springapp
│                      │          └─mvc
│                      ├─lib
│                      └─pages
└─src
   ├─main
   │  ├─java
   │  │  └─com
   │  │      ├─hello
   │  │      └─springapp
   │  ├─resources
   │  └─webapp
   │      └─WEB-INF
   │          └─pages
   └─test
       ├─java
       │  └─com
       │      └─springapp
       │          └─mvc
       └─resources

pull 係加入去你local 度,fetch 可能落左local,但唔影響你做緊gei 野

唔要可以用hard reset,但之後個d都會無晒,太多之後gei 就唔適合啦

TOP

本帖最後由 梁炳 於 2015-1-28 00:30 編輯

1. 試下呢兩個command
  1. git reflog expire --expire-unreachable=now --all
  2. git gc --prune=now
複製代碼
參考:
http://stackoverflow.com/questio ... -no-branch-dangling

2. 可能你要重建番個remote repo

3. Git的系統最基本概念係每個人都有一個完整既Repo
Fetch 都係會download哂remote branch下來,不過不會影響working copy,再行一次pull先會merge
其實Pull = Fetch + merge

4. 你可能唔知可以叫Git 排除某些file,呢個Repo有好多現成ignore rules
https://github.com/github/gitignore
基本上,gitignore要加入IDE setting, data, 所有runtime config, build file

TOP

點解ignore唔係好work既?
我試過係.gitignore入面, 加入過
.idea/workspace.xml
又試過加入
.idea/

但佢點都唔識ignore
附件: 您需要登錄才可以下載或查看附件。沒有帳號?註冊

TOP

本帖最後由 justlazy 於 2015-1-29 19:43 編輯

TOP

1. 試下呢兩個command參考:


2. 可能你要重建番個remote repo

3. Git的系統最基本概念係每個人都有一個完 ...
梁炳 發表於 2015-1-28 00:19



    pull 應該係更新working files,因為你可以唔做merge

TOP

pull 應該係更新working files,因為你可以唔做merge
DarkHero 發表於 2015-1-29 20:04



你講既"更新"其實即係merge
例如你在master行git pull,其實即係git fetch + git merge master origin/master
無conflict就係fast forward

TOP