ฉันจะส่ง repo ในเครื่องไปยัง Bitbucket โดยใช้ SourceTree โดยไม่ต้องสร้าง repo บน bitbucket ก่อนได้อย่างไร


116

มีวิธีการนำเข้า git repos ในพื้นที่ของฉันไปยัง SourceTree และส่งไปยังบัญชี Bitbucket ของฉันหรือไม่โดยมีการสร้าง repos ใหม่ที่เหมือนกับ repos ในพื้นที่ของฉันในบัญชีของฉันหรือไม่ หรือฉันต้องทำ repo ออนไลน์ก่อนแล้วกดไปที่? Github มีวิธีเผยแพร่ repos ในเครื่องของคุณโดยตรงจากไคลเอนต์ของมันและจะสร้างขึ้นโดยอัตโนมัติเมื่อคุณเผยแพร่ แต่มี repos ส่วนตัวที่ จำกัด ฉันแค่ทำการบ้านดังนั้นจึงไม่มีเหตุผลที่จะเปิดเผยต่อสาธารณะดังนั้นฉันจึงพยายามใช้ bitbucket

คำตอบ:


152

(อัปเดตเมื่อ 3-29-2019 เพื่อใช้ https แทน ssh ดังนั้นคุณไม่จำเป็นต้องใช้คีย์ ssh)

ดูเหมือนว่าสำหรับ BitBucket คุณต้องสร้าง repo ออนไลน์ก่อน ใช้คำแนะนำจากAtlassianเพียงสร้างที่เก็บ BitBucket ใหม่คัดลอก url ที่เก็บไปยังคลิปบอร์ดจากนั้นเพิ่มที่เก็บนั้นเป็นรีโมตใหม่ในที่เก็บในเครื่องของคุณ (ขั้นตอนเต็มด้านล่าง):

รับ Repo URL

  1. ใน BitBucket repo ของคุณให้เลือก "Clone" ที่ด้านขวาบน
  2. เลือก "HTTPS" แทน "SSH" ที่ด้านบนขวาของกล่องโต้ตอบ
  3. ควรแสดง url repo ของคุณในแบบฟอร์ม git clone <repository url>

เพิ่มระยะไกลโดยใช้ CLI

  1. cd /path/to/my/repo
  2. git remote add origin https://bitbucket.org/<username>/<reponame>.git
  3. git push -u origin --all

เพิ่มรีโมทโดยใช้ SourceTree

  1. ที่เก็บ> เพิ่มรีโมท ...
  2. วาง URL ที่เก็บ BitBucket ( https://bitbucket.org/<username>/<reponame>.git)

วิธีการเดิม: การสร้างและการลงทะเบียนคีย์ SSH

(วิธีนี้คือถ้าคุณใช้ ssh url แทน https url ซึ่งดูเหมือนว่าssh://git@bitbucket.org/<username>/<reponame>.gitฉันแนะนำให้ใช้ https)

BitBucket นั้นยอดเยี่ยมสำหรับ repos ส่วนตัว แต่คุณจะต้องตั้งค่าคีย์ ssh เพื่ออนุญาตให้คอมพิวเตอร์ของคุณทำงานกับบัญชี BitBucket ของคุณ โชคดีที่ Sourcetree ทำให้มันค่อนข้างง่าย:

การสร้างคีย์ใน SourceTree:

  1. ในTools> Optionsตรวจสอบให้แน่ใจว่าSSH Client:ได้ตั้งค่าไว้ที่PuTTY/Plinkใต้Generalแท็บ
  2. เลือกTools>Create or Import SSH Keys
  3. ในหน้าต่างป๊อปอัปให้คลิกGenerateและเลื่อนเมาส์ไปรอบ ๆ เพื่อสุ่มให้ตัวสร้างคีย์
  4. คุณควรจะได้รับบางอย่างเช่นสิ่งที่แสดงในภาพหน้าจอด้านล่าง คัดลอกคีย์สาธารณะ (เน้นด้วยสีน้ำเงิน) ไปยังคลิปบอร์ดของคุณ

    ผงสำหรับอุดรู

  5. คลิกSave private KeyและSave public keyบันทึกคีย์ของคุณไปยังทุกที่ที่คุณเลือก (เช่น<Home Dir>/putty/ssk-key.ppkและ<Home Dir>/putty/ssh-key.pubตามลำดับ) ก่อนที่จะไปยังส่วนถัดไป

การลงทะเบียนคีย์ใน BitBucket

  1. ลงชื่อเข้าใช้บัญชีBitBucketของคุณและคลิกรูปโปรไฟล์ของคุณที่ด้านขวาบนแล้วคลิกSettings
  2. ไปที่SSH Keysแท็บบนแถบด้านข้างทางซ้าย
  3. คลิกAdd SSH Keyตั้งชื่อและวางคีย์สาธารณะที่คุณคัดลอกไว้ในขั้นตอนที่ 4 ของส่วนก่อนหน้า

แค่นั้นแหละ! ตอนนี้คุณควรจะสามารถผลัก / ดึงไปที่ BitBucket private repos ของคุณได้แล้ว คีย์ของคุณไม่ได้มีไว้สำหรับ Git เท่านั้นบริการจำนวนมากใช้คีย์ ssh เพื่อระบุผู้ใช้และส่วนที่ดีที่สุดคือคุณต้องการเพียงอย่างเดียว หากคุณทำกุญแจหาย (เช่นเมื่อเปลี่ยนคอมพิวเตอร์) ให้ทำตามขั้นตอนเพื่อสร้างและลงทะเบียนคีย์ใหม่

Sidenote: การสร้างคีย์ SSH โดยใช้ CLI

เพียงทำตามบทแนะนำนี้


การใช้Paste the BitBucket repository url (git@bitbucket.org/<username>/<reponame>.git)จะบังคับให้คุณเพิ่มคีย์ ssh ในกรณีที่คุณไม่มีอยู่แล้วจะต้องเจ็บปวด
Alex Kyriakidis

1
ใช่ BitBucket เป็นส่วนใหญ่สำหรับ repos ส่วนตัวดังนั้นคุณจะต้องมีคีย์ ssh เพื่อเริ่มต้น ไม่ต้องกังวลมันไม่ได้แย่อย่างที่เห็น! ฉันเพิ่มบทช่วยสอนสั้น ๆ ในคำตอบของฉัน
woojoo666

3
ทำไมพวกคุณถึงดิ้นรนกับ SSH และคีย์สาธารณะ / ส่วนตัวในเมื่อใช้ HTTPS ง่ายกว่ามาก ในCloneกล่องโต้ตอบสลับเมนูแบบเลื่อนลงด้านขวาบนจาก SSH เป็น HTTPS และรับ URL:https://bitbucket.org/<reponame>.git
Dan Dar3

1
@ DanDar3 ใช่ขอบคุณสิ่งนี้ช่วยให้ฉันไม่ยุ่งยากมาก
Excrubulent

1
@ DanDar3 ว้าวง่ายกว่ามากฉันอัปเดตคำตอบแล้วขอบคุณ!
woojoo666

24

จริงๆแล้วมีวิธีแก้ปัญหาที่ง่ายกว่านั้น (เฉพาะในเวอร์ชัน Mac) เพียงสี่ขั้นตอน:

  1. คลิกขวาที่ที่เก็บและเลือก "เผยแพร่ไปยังรีโมต ... "

SourceTree เผยแพร่ไปยัง Screeshot ระยะไกล

  1. หน้าต่างถัดไปจะขอให้คุณเผยแพร่ (github, bitbucket ฯลฯ ) จากนั้นคุณก็ทำเสร็จแล้ว
  2. เชื่อมโยงที่เก็บระยะไกล
  3. ดัน

สิ่งนี้ต้องเป็นเรื่องใหม่ ฉันไม่ได้ใช้ที่เก็บมาสักพักแล้วดังนั้นฉันจะให้มันหมุนวน
cma0014

3
อันที่จริงฉันได้ตรวจสอบแล้วว่าเป็น SourceTree เวอร์ชัน Mac เท่านั้นไม่ใช่ใน Windows :(
David

1
ใช่ฉันตรวจสอบแล้วว่าสร้าง repo บนรีโมต แต่ไม่ได้ลิงก์ตั้งค่าบนรีโมตของที่เก็บในเครื่อง มันจะเป็นการอัปเกรดที่ดีสำหรับเวอร์ชันถัดไป
David

1
@bauerMusic สิ่งนี้เกิดขึ้นกับฉันด้วยในหน้าต่าง "กำลังดำเนินการ" แต่ไม่นานมานี้ แม้ว่าอย่างที่คุณพูด ... มีบางอย่างล้มเหลวกับคุณสมบัตินี้ มันไม่ได้เชื่อมโยงกับ repo ระยะไกลใหม่อย่างที่เราทุกคนคาดหวัง อย่างไรก็ตาม SourceTree เป็นผู้จัดการ GIT ที่ดีที่สุดสำหรับ Mac ที่ฉันพบ
เดวิด

1
มันใช้งานได้จริงสำหรับฉันมันสร้าง repo และเชื่อมโยงกับท้องถิ่นและระยะไกลอาจจะตั้งแต่ปี 2016 พวกเขาปรับปรุงมัน
Kross

10

ตามที่แสดงในวิดีโอนี้การสร้าง repo ทางออนไลน์ก่อนเป็นวิธีปกติ

บันทึกประจำรุ่น SourceTreeทำกล่าวถึงสำหรับ SourceTree 1.5+:

สนับสนุนการสร้างที่เก็บใหม่ภายใต้บัญชีทีม / องค์กรใน Bitbucket

ดังนั้นแม้ว่าจะไม่มีคุณลักษณะ "การเผยแพร่" แต่คุณสามารถสร้าง repo ออนไลน์ได้จาก SourceTree

บล็อกโพสต์ " SourceTree for Windows 1.2 อยู่ที่นี่ " (ก.ย. 2013) ยังกล่าวถึง:

ตอนนี้คุณสามารถกำหนดค่าบัญชี Bitbucket, Stash และ GitHub ของคุณใน SourceTree และดูที่เก็บข้อมูลทั้งหมดของคุณในบริการเหล่านั้นได้ทันที ได้อย่างง่ายดายโคลนพวกเขาเปิดโครงการบนเว็บและแม้กระทั่งการสร้างที่เก็บใหม่ในการให้บริการระยะไกลโดยไม่เคยออก SourceTree
คุณจะพบในเมนูใต้ View> Show Hosted Repositories หรือใช้ปุ่มใหม่ที่ด้านล่างขวาของแผงบุ๊กมาร์ก

http://blog.sourcetreeapp.com/files/2013/09/hostedrepowindow.png


ฉันจะลองเมื่อกลับถึงบ้านขอบคุณ!
cma0014

ใช่ แต่การทำให้โฟลเดอร์ dev ในเครื่องเป็น repo นั้นพิสูจน์ได้ยาก
Ben Racicot

3

ฉันใช้สิ่งนี้และได้ผลดีสำหรับฉัน หากไดเรกทอรีของคุณคือ

"repo" และโครงการของคุณคือ "สวัสดี" ให้คัดลอกโครงการที่นั่น

cd /path/to/my/repo

เริ่มต้นไดเรกทอรีของคุณ

git init

จัดเวทีโครงการ

git add hello

กระทำโครงการ

git commit

เพิ่มการกำหนดค่าโดยใช้อีเมลและชื่อผู้ใช้ที่คุณใช้ใน Bitbucket

git config --global user.email
git config --global user.name

เพิ่มความคิดเห็นในโครงการ

git commit -m 'comment'

ผลักดันโครงการทันที

git push origin master

ตรวจสอบจากต้นแบบ

git checkout master

3

Bitbucket รองรับ REST API ที่คุณสามารถใช้เพื่อสร้างที่เก็บ Bitbucket โดยทางโปรแกรม

เอกสารประกอบและตัวอย่าง cURL อยู่ที่นี่: https://confluence.atlassian.com/bitbucket/repository-resource-423626331.html#repositoryResource-POSTanewrepository

$ curl -X POST -v -u username:password -H "Content-Type: application/json" \
   https://api.bitbucket.org/2.0/repositories/teamsinspace/new-repository4 \
   -d '{"scm": "git", "is_private": "true", "fork_policy": "no_public_forks" }'

ภายใต้ Windows สามารถใช้ curl ได้จาก Git Bash shell

ใช้วิธีนี้คุณสามารถสร้างสคริปต์เพื่อนำเข้า repos จำนวนมากจากเซิร์ฟเวอร์ git ภายในไปยัง Bitbucket ได้อย่างง่ายดาย


1

ตั้งค่า Bitbucket Repository (Command Line กับ Mac)

สร้างแอปพลิเคชันใหม่จากการเริ่มต้นด้วย reposity ในเครื่อง:

  1. Terminal -> cd ~ / Documents (วางเส้นทางไดเรกทอรีฐาน APPLICATION ของคุณ)
  2. Terminal -> mkdir (สร้างไดเร็กทอรีด้วย)
  3. Terminal -> cd (เปลี่ยนไดเร็กทอรีด้วยไดเร็กทอรี)
  4. BitBucket A / C -> สร้างที่เก็บในบัญชี bitBucket
  5. Xcode -> สร้างโครงการ xcode ใหม่ด้วยชื่อเดียวกัน
  6. Terminal -> git init (เริ่มต้น repo ที่ว่างเปล่า)
  7. Terminal -> git remote add origin (เช่นhttps: //app@bitbucket.org/app/app.git )
  8. Terminal -> เพิ่มคอมไพล์
  9. Terminal -> สถานะคอมไพล์
    1. Terminal -> คอมมิตคอมมิต -m "IntialCommet"
    2. เทอร์มินัล -> git push origin master

สร้างที่เก็บแอปพลิเคชันโคลน:

  1. Terminal -> mkdir (สร้างไดเร็กทอรีด้วย)
  2. Terminal -> cd (เปลี่ยนไดเร็กทอรีด้วยไดเร็กทอรี)
  3. Terminal -> git clone (เช่นhttps: //app@bitbucket.org/app/app.git )
  4. Terminal -> cd
  5. Terminal -> สถานะ git (แสดงสถานะแก้ไข / อัปเดตไฟล์)
  6. เทอร์มินัล -> git ดึงต้นแบบต้นแบบ
  7. Terminal -> เพิ่มคอมไพล์
  8. เทอร์มินัล -> git push origin master

1

อีกทางเลือกหนึ่งสำหรับผู้ใช้ Windows:

สิ่งนี้ใช้ Github เป็นสะพานเชื่อมไปยัง Bitbucket ซึ่งเกิดจากการขาดการเผยแพร่โดยตรงจากแอป Windows Sourcetree

  1. โหลด repo ในเครื่องของคุณลงในแอป Github บนเดสก์ท็อป
  2. เผยแพร่ repo เป็น repo ส่วนตัว (เพื่อความเป็นส่วนตัว - หากต้องการ) จากแอป Github บนเดสก์ท็อปไปยังบัญชี Github ของคุณ
  3. เปิดบัญชีส่วนตัว / ทีมของคุณในเว็บไซต์ของ Bitbucket
  4. สร้าง Bitbucket repo ใหม่โดยการนำเข้าจาก Github
  5. ลบ repo ใน Github

เมื่อเสร็จแล้วทุกอย่างจะถูกโหลดเข้าสู่ Bitbucket รีโมทในเครื่องของคุณอาจต้องกำหนดค่าให้ชี้ไปที่ Bitbucket ทันที


0

GIT ทำหน้าที่ได้ดีสำหรับการควบคุมเวอร์ชันและโปรเจ็กต์ของทีมหากคอมมิตและสาขาได้รับการดูแลอย่างเหมาะสม
ขั้นตอนที่ 1: โคลน repo ในพื้นที่ของคุณโดยใช้ cli ตามที่กล่าวไว้ในคำตอบข้างต้น

$ cd [path_to_repo]
$ git remote เพิ่มต้นทาง ssh: //git@bitbucket.org//.git
$ git push -u origin --all

ขั้นตอนที่ 2: คุณสามารถทำตามขั้นตอนข้างต้นเพื่อผลัก / ดึงผลงานของคุณ วิธีง่ายๆคือใช้ git gui มีอินเทอร์เฟซแบบกราฟิกเพื่อให้ง่ายต่อการจัดเวที (เพิ่ม) / เปิดเวทีกระทำ / ผิดคำสั่งและผลัก / ดึง ผู้เริ่มต้นสามารถเข้าใจกระบวนการคอมไพล์ได้อย่างง่ายดาย

$ git gui

(หรือ)
ขั้นตอนที่ 2: ตามที่กล่าวไว้ข้างต้น รหัส Cli จะทำงาน

$ git status
$ git เพิ่ม [file_name]
$ git กระทำ _m "[Comit message"] "
$ git push origin master / branch_name


0

ในการอัปเดตคำตอบของ Joeคุณสามารถเขียนสคริปต์การสร้างที่เก็บโดยใช้ API เฉพาะการเรียก API ที่ฉันต้องการเท่านั้นที่แตกต่างกัน อาจเป็นเพราะเราใช้เซิร์ฟเวอร์ bitbucket ไม่ใช่ bitbucket cloud

ในการสร้าง repo ใหม่ภายในโปรเจ็กต์บนเซิร์ฟเวอร์ของเราฉันใช้:

curl -X POST -v -u USER:PASSWORD -H "Content-Type: application/json" \
http://SERVER/rest/api/1.0/projects/PROJECTNAME/repos/ \
-d '{"scmid":"git", "name":"REPONAME"}'

ที่USER, PASSWORD, SERVER, PROJECTNAMEและREPONAMEเป็นที่ต้องการของหลักสูตร / ค่าที่จำเป็น

โทรเป็นเอกสารในการอ้างอิงของ API

/rest/api/1.0/projects/{projectKey}/repos

สร้างที่เก็บใหม่ ต้องการโปรเจ็กต์ที่มีอยู่ซึ่งจะสร้างที่เก็บนี้ พารามิเตอร์เดียวที่จะใช้คือชื่อและ scmId

ผู้ใช้ที่พิสูจน์ตัวตนต้องมีสิทธิ์ PROJECT_ADMIN สำหรับโปรเจ็กต์บริบทเพื่อเรียกใช้ทรัพยากรนี้


0

(อย่างน้อย Linux / WSL) จากเบราว์เซอร์ที่ bitbucket.org สร้าง repo ว่างที่มีชื่อเดียวกับ repo ในเครื่องของคุณทำตามคำแนะนำที่เสนอโดย bitbucket เพื่อนำเข้า repo ในเครื่อง (มีคำสั่งให้พิมพ์สองคำสั่ง)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.