Đẩy dự án hiện có vào Github


224

Tôi có một thư mục với các nguồn dự án của tôi. Làm thế nào tôi có thể đẩy dự án này vào kho lưu trữ của Github?

Tôi đã thử sử dụng các bước này:

  1. Tôi đã tạo kho lưu trữ trống trên GitHub.
  2. Tôi chạy git-bash và gõ git init, vì vậy bên trong .gitthư mục gốc xuất hiện .
  3. Tôi đã thêm một số tệp vào kiểm soát phiên bản bằng cách sử dụng git add sourcesFolderName
  4. Tôi đã cam kết các tệp được thêm vào trong bước trước bằng cách sử dụng git commit -m "initial commit"
  5. Tôi đã chỉ định kho lưu trữ từ xa bằng cách sử dụng git remote add MyProject <url>
  6. Cuối cùng git push, nhưng không có gì được đẩy đến repo từ xa ... (không có sự cho phép)

Vậy làm thế nào tôi có thể đẩy các nguồn hiện có vào repo github mới được tạo?


4
Chính xác thì đầu ra là git pushgì?
1615903

1
@ user1615903 Tôi chắc chắn mình đã sai trình tự các bước. Tôi nghĩ rằng tôi cần một cái gì đó như git clone. Tôi không nhớ đầu ra từ git push, nhưng tôi nghĩ nó không đáng kể. Bởi vì vấn đề ở một nơi khác
MyTitle

Bạn đã làm git push MyProject masterchưa
Felix Kling

Bài đăng blog này có thể giúp bất cứ ai muốn làm nhiệm vụ này. Tất cả các bước được mô tả đơn giản và chi tiết. samranga.blogspot.com/2015/07/...
Samitha Chathuranga

1
Một lời khuyên nhỏ, hãy thử sử dụng ứng dụng SourceTree. Giao diện người dùng rất đẹp.
Mohammad Fareed

Câu trả lời:


340
git init
git add .
git commit -m "Initial commit"
git remote add origin <project url>
git push -f origin master

Các -ftùy chọn về git pushlực đẩy. Nếu bạn không sử dụng nó, bạn sẽ thấy một lỗi như thế này:

To git@github.com:roseperrone/project.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'git@github.com:roseperrone/project.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first merge the remote changes (e.g.,
hint: 'git pull') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

5
Đây cố định vấn đề của tôi nhưng tôi không thể làm được lệnh 4 git remote add origin <project url>nói command syntax not correct. Tôi bỏ qua nó và nó hoạt động
Khalil Khalaf

4
Chỉ cần một lưu ý phụ, nếu bạn không muốn sử dụng trang web GitHub, bạn có thể thêm phần này sau bước thứ ba curl -u 'USER' https://api.github.com/user/repos -d '{"name":"REPO"}':, thay thế USER bằng tên người dùng của bạn và REPO bằng tên của kho lưu trữ sẽ được tạo.
MD XF

1
Ngoài ra, tôi nghĩ rằng bạn không còn có thể làm git add ., bạn nên thay đổi điều đó cat "# reponamehere" >README.mdvà sau đó git add README.md. Đó là cách tài liệu GitHub nói để làm điều đó
MD XF

2
Tôi tin rằng -fcờ sẽ buộc lịch sử từ xa biến mất? Có vẻ như một nhà điều hành nguy hiểm.
van abel

112

Về mặt kỹ thuật

Câu trả lời của tôi không khác nhau nhưng tôi đang bổ sung thêm thông tin bởi vì những thông tin mới có thể được hưởng lợi từ việc điền vào các khoảng trống thông tin.

Sau khi bạn tạo repo trên github, họ có hướng dẫn. Bạn có thể làm theo những điều đó. Nhưng đây là một số lời khuyên bổ sung vì tôi biết rằng thật khó chịu khi bắt đầu với git.

Hãy nói rằng bạn đã bắt đầu dự án của bạn tại địa phương. Bạn có bao nhiêu không quan trọng. Nhưng hãy giả vờ rằng bạn có một dự án php. Giả sử bạn có index.php, contact.php và một thư mục tài sản có hình ảnh, css và phông chữ. Bạn có thể làm theo cách này (dễ), nhưng có nhiều tùy chọn:

lựa chọn 1

Đăng nhập vào tài khoản github của bạn và tạo repo.

nhập mô tả hình ảnh ở đây

Trong màn hình sau, bạn có thể sao chép nó xuống nơi bạn cần nếu bạn nhấp vào nút (bên phải màn hình) để "nhân bản trong máy tính để bàn".

nhập mô tả hình ảnh ở đây

Bạn có thể (hoặc thực hiện theo cách khác) sau đó sao chép nội dung từ dự án hiện tại của bạn vào repo mới. Sử dụng ứng dụng github, bạn có thể cam kết từ đó bằng GUI của họ (điều đó có nghĩa là bạn chỉ cần nhấp vào các nút trong ứng dụng). Tất nhiên bạn nhập ghi chú của bạn cho cam kết.

Lựa chọn 2

  • Tạo repo của bạn trên github như đã đề cập ở trên.
  • Trên máy tính của bạn, đi đến thư mục của bạn bằng cách sử dụng thiết bị đầu cuối. sử dụng dòng lệnh linux, bạn sẽ cd vào thư mục. Từ đây bạn chạy các lệnh sau để "kết nối" dự án hiện tại của bạn với repo của bạn trên github. (Điều này giả sử rằng bạn đã tạo repo của mình trên github và nó hiện đang trống)

đầu tiên làm điều này để khởi tạo git (kiểm soát phiên bản).

git init

sau đó làm điều này để thêm tất cả các tập tin của bạn để được "theo dõi." Nếu bạn có các tệp mà bạn muốn bỏ qua, bạn cần thêm một .gitignorenhưng để đơn giản, chỉ cần sử dụng ví dụ này để tìm hiểu.

git add .

Sau đó, bạn cam kết và thêm một ghi chú ở giữa "" như "cam kết đầu tiên", v.v.

 git commit -m "Initial Commit"

Bây giờ, đây là nơi bạn thêm repo hiện có của bạn

git remote add github <project url>

Nhưng không thực sự gõ <project url>, nhưng URL dự án của riêng bạn. Làm thế nào để bạn có được điều đó? Chuyển đến liên kết nơi repo của bạn trên github, sau đó sao chép liên kết. Trong trường hợp của tôi, một trong những repos của tôi là https://github.com/JGallardo/urbanhistorical vì vậy url kết quả của tôi cho lệnh này sẽ chỉ cần thêm .git sau đó. Vì vậy, đây sẽ là

git remote add github https://github.com/JGallardo/urbanhistorical.git

Kiểm tra để thấy rằng nó hoạt động bằng cách làm

git remote -v

Bạn sẽ thấy những gì repo của bạn được liên kết đến.

nhập mô tả hình ảnh ở đây

Sau đó, bạn có thể đẩy các thay đổi của mình lên github

git push github master

hoặc là

git push origin master

Nếu bạn vẫn gặp lỗi, bạn có thể buộc nó với -f. Nhưng nếu bạn đang làm việc trong môi trường nhóm, hãy cẩn thận đừng ép buộc hoặc bạn có thể tạo ra nhiều vấn đề hơn.

git push -f origin master

3
Của bạn là lời giải thích tốt nhất. Đối với những người khác đọc điều này: Tôi đã tạo kho lưu trữ của mình tại github trước, vì vậy nó sẽ không cho phép tôi đẩy. Tôi đã phải> github kéo <url dự án> và sau đó đẩy github. Sau đó, tất cả đều ổn.
triết học

1
Cám ơn bạn rất nhiều về điều này. Tùy chọn 1 đã cứu mạng tôi sau khi tất cả các tùy chọn khác không thành công! : D
Sara Inés Calderón

2
Giải thích tuyệt vời! Tuy nhiên, tôi sẽ thêm các dòng sau: git remote add origin <project url> và sau đó git push -f origin master. Nếu không có -f, sẽ có lỗi
Javiar Sandra

1
vui lòng thêm tùy chọn -f vào lệnh cuối cùng, theo cách đó câu trả lời của bạn là tốt nhất
Jacobo Koenig

1
Điều đó thực sự có ích! Tôi đã vô tình khởi tạo repo github bằng README, sau đó nó không hoạt động. Tôi đã làm lại với một repo trống và nó đã hoạt động.
Verena Haunschmid

36

bạn sẽ cần chỉ định nhánh nàoremote nào khi đẩy:

➤ git init ./
➤ git add Readme.md
➤ git commit -m "Initial Commit"
➤ git remote add github <project url>
➤ git push github master

Sẽ làm việc như mong đợi.

Bạn có thể thiết lập điều này theo mặc định bằng cách thực hiện:

➤ git branch -u github/master master

sẽ cho phép bạn thực hiện git pushtừ chủ mà không chỉ định điều khiển từ xa hoặc chi nhánh.


1
Chính xác. Bạn cũng có thể bỏ qua /masterphần này, vì nó là dư thừa.
Gabriele Petronella

1
"git add Readme.md" không đúng. Nếu nó đã tồn tại, không cần thêm. Nếu nó không tồn tại, lệnh thất bại. Dù bằng cách nào, điều này không chính xác.
Mitch

1
@Mitch đây không phải là một phép thuật bí mật sẽ đột nhiên khiến máy tính của bạn làm những gì bạn muốn. Đó là một ví dụ để cung cấp cho mọi người và ý tưởng về những gì họ nên làm. Tôi mong mọi người hiểu các lệnh mà họ đang gõ vào máy của họ.
brice

9

Nếu bạn đang sử dụng máy Mac (và điều này có thể hoạt động tương tự trên PC), thì đây là một cách rất dễ dàng để làm điều này. Thật kỳ lạ, tôi đã nhìn cao và thấp cho quá trình đơn giản này và không bao giờ tìm thấy nó.

  • Không làm bất cứ điều gì trên Github (ngoài việc có tài khoản và không sử dụng hết tất cả các repos có sẵn của bạn).
  • Tải xuống GitHub cho Mac và cài đặt. Đi qua thiết lập tài khoản, vv KHÔNG tạo bất kỳ kho lưu trữ nào cho dự án hiện tại của bạn.
  • "Thêm kho lưu trữ cục bộ mới" trong kho.
  • Chọn thư mục hiện có của bạn. Nó sẽ hỏi nếu bạn muốn làm điều đó, hãy nói có.
  • Sau khi hoàn thành, bạn sẽ thấy một danh sách tất cả các tệp của mình, v.v. Cam kết chúng.
  • Chuyển đến Kho lưu trữ và Xuất bản (điều này sẽ tạo repo mới trên GitHub cho bạn, nếu bạn thiết lập tài khoản của mình đúng cách).
  • Chuyển đến Kho lưu trữ và Đẩy (bạn sẽ thấy điều "không có gì để đẩy" hoặc nó sẽ đẩy các tệp / thay đổi của bạn sang repo mới được tạo tự động).
    • Tự hỏi tại sao bạn không thể tìm thấy quá trình đơn giản này ở bất cứ nơi nào khác.

Tôi biết không nên sử dụng thư mục dự án làm thư mục repo. Tôi làm điều đó mọi lúc, nó luôn hoạt động, nó làm cho nó đơn giản, và tôi không bao giờ có bất kỳ rắc rối nào với nó.


Có vẻ với tôi nếu ứng dụng GitHub cho phép người dùng làm theo cách này, thì nó sẽ ổn.
johnnieb


5

Tôi sẽ theo dõi bình luận trước đó từ Rose P. Tôi đã mất một thời gian dài để tìm ra giải pháp vì vậy tôi đang đăng lại (hy vọng bằng tiếng Anh đơn giản) những gì hiệu quả với tôi ...

Bước 1: Tạo kho lưu trữ mới của bạn trên Github.com (bỏ qua nếu bạn đã có)

Bước 2: Đóng XCode ... không cần thiết

Bước 3: Mở cửa sổ Terminal mới (vâng, bạn phải sử dụng terminal ... Tôi đã thử tất cả các cách khác ... không có gì hoạt động)

Bước 4: Sử dụng lệnh cd để tìm vị trí thư mục của bạn cho dự án của bạn (dự án bạn muốn thêm vào kho lưu trữ hiện tại hoặc mới)

Bước 5: gõ git init, bạn sẽ nhận được một cái gì đó như thế này. Kho lưu trữ lại Git hiện có trong / {thư mục hiện tại}

bước 6: gõ git add. Không có gì xảy ra sau bước này, nhưng gõ nó và chuyển sang bước tiếp theo.

Bước 7: gõ git commit -m "Cam kết ban đầu" bạn sẽ nhận được những điều sau: # Trên nhánh chủ không có gì để cam kết, thư mục làm việc sạch sẽ

hoặc là

một số giải thích về cấu hình và sau đó một danh sách các tập tin đã thay đổi.

bước 8: gõ git remote add origin {dự án url} Có thể tìm thấy url dự án trong Github.com. Đó là URL nhân bản HTTPS ... bạn sẽ có thể chỉ cần sao chép và dán vào cửa sổ terminal. Nếu hệ thống cho bạn biết nguồn gốc đã tồn tại, hãy tạo một tên khác hoặc sử dụng tên dự án của bạn (một cái gì đó khác)

Bước 9: truy cập ứng dụng GitHub trên máy mac của bạn và nhấp vào nút "Chi nhánh đồng bộ hóa" (ngay cả khi không có thay đổi đang chờ xử lý). Tôi mất một lúc để tôi thực sự cam kết, nhưng nếu bạn quay lại thư mục kho lưu trữ cục bộ, bạn sẽ thấy dự án mới của mình. Tôi đã phải tạo lại thư mục mẹ, nhưng đó chỉ là vấn đề di chuyển các tệp của bạn. Truy cập GitHub.com và làm mới trình duyệt của bạn và các tệp mới của bạn cũng sẽ ở đó.

Tôi hy vọng điều đó sẽ giúp.


5
Follow below gitbash commands to push the folder files on github repository :-
1.) $ git init
2.) $ git cd D:\FileFolderName
3.) $ git status
4.) If needed to switch the git branch, use this command : 
    $ git checkout -b DesiredBranch
5.) $ git add .
6.) $ git commit -m "added a new folder"
7.) $ git push -f https://github.com/username/MyTestApp.git TestBranch
    (i.e git push origin branch)

4
git init

Thêm các tập tin trong kho lưu trữ cục bộ mới của bạn. Điều này giai đoạn họ cho cam kết đầu tiên.

git add .

Thêm các tệp trong kho lưu trữ cục bộ và giai đoạn chúng cho cam kết. Để hủy kích hoạt một tập tin, hãy sử dụng 'git reset HEAD YOU-FILE'.

Cam kết các tệp mà bạn đã dàn dựng trong kho lưu trữ cục bộ của bạn.

git commit -m "First commit"
# Commits the tracked changes and prepares them to be pushed to a remote

kho. Để xóa cam kết này và sửa đổi tệp, sử dụng 'git reset --soft HEAD ~ 1' và xác nhận và thêm lại tệp. Sao chép trường URL kho lưu trữ từ xa Ở đầu trang Cài đặt nhanh của kho lưu trữ GitHub của bạn, nhấp để sao chép URL kho lưu trữ từ xa.

Trong dấu nhắc lệnh, thêm URL cho kho lưu trữ từ xa nơi kho lưu trữ cục bộ của bạn sẽ được đẩy.

git remote add origin remote repository URL
# Sets the new remote
git remote -v
# Verifies the new remote URL

Đẩy các thay đổi trong kho lưu trữ cục bộ của bạn sang GitHub.

git push origin master
# Pushes the changes in your local repository up to the remote repository you 

được chỉ định là nguồn gốc


4
  1. Từ dòng lệnh, điều hướng đến thư mục kho lưu trữ cục bộ của bạn.
  2. Tạo kho lưu trữ mới trong GitHub, nó sẽ cung cấp cho bạn một liên kết kết thúc bằng .git.
  3. trong cmd run: git remote add origin [your_GitHub_Repository_link](nhớ liên kết nên kết thúc bằng .git)
  4. sau đó chạy : git push -u origin master

Hy vọng điều này là hữu ích.


4

Tạo một kho lưu trữ mới

git clone <url>
cd "repositoryName"
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

Thư mục hiện có

cd existing_folder
git init
git remote add origin <url>
git add .
git commit -m "Initial commit"
git push -u origin master

Kho Git hiện có

cd existing_repo
git remote rename origin old-origin
git remote add origin <url>
git push -u origin --all
git push -u origin --tags

Có gì khác nhau giữa cam kết và đẩy? "nguồn gốc" và "chủ" đề cập đến trong đẩy là gì? một chi nhánh?
ealeon

2

Đầu tiên, tạo một kho lưu trữ mới trên Github với tên dự án của bạn. Sau đó hãy làm theo các bước dưới đây ..

1)git init
2)git add *
3)git commit -m "first commit"
4)git remote add origin https://github.com/yuvraj777/GDriveDemo.git
5)git push -u origin master

2

Tôi biết, đây là một câu hỏi cũ nhưng tôi đang cố gắng giải thích từng bước, vì vậy nó có thể giúp đỡ người khác. Đây là cách tôi thêm một nguồn hiện có vào git:

  1. Tạo repo trên git, vì vậy bạn sẽ có ssh | | https nơi bạn sẽ từ xa thêm mã nguồn của bạn.
  2. Trong thiết bị đầu cuối của bạn đi đến đường dẫn của dự án của bạn.
  3. Chạy git init(ở đây bạn bắt đầu dự án như một git).
  4. Chạy git add *(ở đây bạn thêm tất cả các tệp và thư mục từ dự án của bạn).
  5. Chạy git commit -m "Initial Commit."(ở đây bạn cam kết các tệp và thư mục của mình được thêm vào trong bước 4; hãy lưu ý rằng bạn không thể đẩy các thay đổi của mình mà không cam kết chúng).
  6. Chạy git remote add origin https://your_username@bitbucket.org/your_username/project-name.git(ở đây bạn thêm một dự án từ xa nơi nguồn của bạn sẽ được đẩy; thay thế liên kết của tôi bằng ssh của bạn || https từ bước # 1).
  7. Chạy git push -u origin master(ở đây bạn đẩy nguồn của bạn vào kho git).

Lưu ý: Đó là những bước đơn giản để đẩy nguồn của bạn vào tổng chi nhánh.


2

Ghét phải thêm một câu trả lời khác, nhưng kịch bản cụ thể của tôi không được đề cập ở đây. Tôi đã có một repo cục bộ với lịch sử thay đổi mà tôi muốn lưu giữ và một repo không trống được tạo cho tôi trên Github (nghĩa là với README.md mặc định). Có, bạn luôn có thể tạo lại repo Github dưới dạng repo trống, nhưng trong trường hợp của tôi, người khác có quyền tạo repo đặc biệt này và tôi không muốn gây rắc rối cho anh ta, nếu có một cách giải quyết dễ dàng.

Trong trường hợp này, bạn sẽ gặp phải lỗi này khi bạn cố gắng git pushsau khi đặt nguồn gốc từ xa:

 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'git@github.com:<my repo>.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

Như lỗi chỉ ra, tôi cần phải thực hiện git pullsau khi đặt gốc từ xa, nhưng tôi cần chỉ định --allow-unrelated-historiestùy chọn. Không có tùy chọn này, git pullphàn nàn warning: no common commits.

Vì vậy, đây là chuỗi chính xác các lệnh làm việc cho tôi:

git remote add origin <github repo url>
cp README.md README.md-save
git pull origin master --allow-unrelated-histories
mv README.md-save README.md
git commit -a
git push

Tôi có cùng một vấn đề, nhưng các bước của bạn dẫn đến một số điều soạn thảo văn bản kỳ lạ
john ktejik

À, tôi đoán bạn thường sử dụng UI và thường không cam kết từ dòng lệnh (không có gì sai với điều đó, tôi sử dụng UI SourceTree). Trình soạn thảo xuất hiện rất có thể là trình soạn thảo vi, có giao diện là toàn bộ chủ đề nên tôi sẽ không đi sâu vào đây.
Jonathan Fischer

2

Kể từ ngày 29/07/2019, Github trình bày cho người dùng các hướng dẫn để hoàn thành nhiệm vụ này khi một repo được tạo, cung cấp một số tùy chọn:

tạo một kho lưu trữ mới trên dòng lệnh

git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/novomotus/vitaprice.git
git push -u origin master

đẩy một kho lưu trữ hiện có từ dòng lệnh

git remote add origin https://github.com/novomotus/vitaprice.git
git push -u origin master

nhập mã từ kho lưu trữ khác

nhấn importnút để khởi tạo quá trình.

Đối với những người học trực quan ngoài kia:

nhập mô tả hình ảnh ở đây




0

Tôi thấy rằng việc kích thích một bản cập nhật theo trình tự "tự nhiên" là một cách dễ dàng hơn so với những thứ đẩy mạnh.

Giả sử rằng repo đã được tạo trên github và bạn cũng có thể đã đưa một số nội dung vào README.md.

  1. Trên máy tính của bạn, mở terminal và git clone [repo URL]

  2. Bạn sẽ thấy một thư mục mới sẽ được tạo mang tên của repo của bạn. Hãy đổi tên nó - không thành vấn đề.

  3. Di chuyển mã, tập tin của bạn vv vào thư mục này. Chỉnh sửa README.md nếu bạn phải.

  4. Bây giờ hãy mở Terminal / dấu nhắc lệnh, vào bên trong thư mục đó và làm những việc như thể bạn đang thực hiện bản cập nhật tiếp theo cho repo:

git add .
git commit -m "v2"
git push origin master

Lưu ý: tại lệnh commit git có thể từ chối, yêu cầu cấu hình email và mật khẩu của người dùng trước. Thực hiện theo các bước như được đưa ra trên màn hình, sau đó chạy lại lệnh commit.

  1. Và ba lệnh đó là những gì bạn làm bây giờ trở đi cho mỗi lần bạn muốn đẩy một bản cập nhật khác.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.