2014-09-05 160 views
7

我有點新Git.I想推動一些文件到我的git起源(遠程)。如何在git中將某些文件推送到origin/master?

我做了什麼: 我有我的主人 - >我創建了一個分支來做一些工作 - >之後,我將我的分支合併到我的主人。在我的工作中,很多二進制文件和項目文件被更改/添加本地。我想只有添加.java更改爲遠程服務器的文件。 (我相信我有嘗試提交當我在我的分公司工作過。只是爲了檢查它是如何工作的)

我的主人是被最新我的原點(當我做git pull還得到什麼我做git fetch origin 我總是收到。(當我跑git status

On branch master Your branch is ahead of origin/master by 12 commits. 
    (use "git push" to publish your local commits) 

nothing to commit, working directory clean` 

我試圖添加,提交這些文件,但運行git status沒有改變。我試圖做附加上新的分支提交

On branch NewBranch nothing to commit, working directory clean 

我試圖重啓頭。 我在git教程或Stack中找不到解決方案。

當然,我可以將所有文件推送到遠程來源,但我不認爲它是一個很好的解決方案。 一些重複的問題,我發現: How to push a single filehow to push changes made to only certain files?How to commit only some files?

非常感謝。

+1

作爲鏈接的第一個副本說,你不能推只是某些文件。您推送的是提交,您可以將其視爲在某個時間點的文件快照。如果沒有做一些特殊的操作(你應該避免),你必須全力或者無所作爲。 – 2014-09-05 15:33:47

+0

什麼是你不想提交的二進制文件?編譯的bin?他們應該是['.gitignored'](http://git-scm.com/docs/gitignore) – 2014-09-05 15:34:35

+0

不僅二進制一些項目文件,我改變了,我不想推(我把它們全部添加到.gitignore,但是當我運行git diff --stat origin/master時,我看到了所有這些),所以我相信我也會推動所有這些。 – 2014-09-05 15:38:55

回答

2

我解決我的問題:(我與git狀態響應混淆了使用它並沒有改變,當我試圖添加/提交已經存在的文件)。感謝linuxdan和DaveZych和Temich。

git checkout -b NewBranch 

之後,我刪除了所有不必要的文件。

git rm --cache build/web/WEB-INF/classes/doggizz/utils/\*.class 

搬回掌握

git checkout master 

(唯一的缺點是,當我搬回主所以我複製手動項目文件的文件被刪除了,我之前試過結賬藏匿,但它沒沒有幫助)

git merge NewBranch 
git push 
10
  1. 從主創建一個新的分支從您的老枝要
    1. git checkout master
    2. git checkout -b new_branch
  2. 結帳不僅僅是文件
    1. git checkout old_branch path/to/some/file
    2. 重複所必需的附加檔案
  3. 將文件提交到新的分支
    1. git commit -a
  4. 推新的分支,以您的起源
    1. git push origin master
+0

第3步之後的tnx linuxdan。git status將返回:在分支NewBranch 沒有提交,工作目錄乾淨。所以如果我推我推動一切 – 2014-09-05 16:47:33

+0

第2步後你的狀態如何? – linuxdan 2014-09-05 17:11:03

+1

最後一步不應該是'git push origin new_branch:master'?它目前的方式是將本地主分支推送到遠程。 – lapropriu 2016-02-02 09:19:59