Lỗi “Công cụ thúc đẩy của bạn sẽ xuất bản một địa chỉ email riêng tư”


110

Tôi rất mới với GitHub / VCS .

Khi tôi cố gắng chia sẻ dự án của mình trên GitHub, tôi nhận được thông báo lỗi sau.

    Can't finish GitHub sharing process
    Successfully created project 'myproject' on GitHub, but initial push failed:
    remote: error: GH007: Your push would publish a private email address.
    failed to push some refs to 'https://github.com/me/myproject.git'

Tôi đã tìm kiếm thông báo lỗi và không có lần truy cập nào. Tôi cũng đã tìm kiếm Stack Exchange, nhưng không có xì gà. Làm thế nào tôi có thể giải quyết vấn đề này?

Câu trả lời:


66

Tôi cũng gặp phải error: GH007thông báo tương tự và sử dụng cách sau để giải quyết vấn đề.

  1. Đi tới Đặt địa chỉ email cam kết của bạn .
  2. Thực hiện theo Cài đặt địa chỉ email của bạn cho mọi kho lưu trữ trên máy tính của bạn .
  3. Mở tài khoản GitHub của bạn và đi tới Cài đặtEmail .
  4. Chọn hộp kiểm Giữ địa chỉ email của tôi riêng tư .
  5. Bỏ chọn dòng lệnh Chặn đẩy làm hiển thị hộp kiểm email của tôi .

Điều này có thể làm lộ địa chỉ email của bạn.


24
Đây là một giải pháp nhưng thực sự có thể làm lộ địa chỉ email của bạn. Nếu bạn có bất kỳ cam kết nào chưa được đẩy, bạn sẽ cần bỏ chọn Chặn các lần đẩy dòng lệnh làm lộ email của tôi. Sau đó, bạn có thể đẩy những cam kết đang chờ xử lý đó. Sau đó, hãy cập nhật địa chỉ email của bạn thành địa chỉ email không trả lời và chọn Chặn các lần đẩy dòng lệnh làm lộ email của tôi một lần nữa để giữ địa chỉ của bạn ở chế độ riêng tư.
SvenAelterman,

5
@SvenAelterman update your email address to the no-reply email addressở đâu? Trong cài đặt github hoặc trên máy cục bộ của bạn ở đâu đó có lẽ đang gửi / sử dụng địa chỉ email cá nhân của bạn? Nó khiến tôi phản cảm rằng tôi có thể phải sao chép và dán một địa chỉ email do github tạo trực tiếp trở lại github thay vì chỉ nhấp vào hộp kiểm, do đó tôi cho rằng việc đọc là không chính xác. Hoặc là nó??
hippietrail

15
Để thay đổi email cho lần sử dụng cam kết mới nhất của bạngit commit --amend --author="Author Name <email@address.com>"
dspacejs

9
Tốt hơn nhiều nếu sử dụng giải pháp của @Winfried tại đây . Sẽ không tiết lộ địa chỉ email của bạn một cách công khai
Connor

8
Đồng ý, câu trả lời đúng là stackoverflow.com/a/51097104/7872793 của @ Winfried .
Shane

229

Khi bật tính năng “Chặn dòng lệnh làm lộ email của tôi”, bạn cũng sẽ muốn định cấu hình Git để sử dụng địa chỉ email không trả lời của mình. Đừng lo lắng — điều này sẽ không ảnh hưởng đến biểu đồ đóng góp của bạn. Tất cả các cam kết sẽ vẫn được liên kết với tài khoản của bạn.

  1. Mở thiết bị đầu cuối.

  2. Thay đổi thư mục làm việc hiện tại thành kho lưu trữ cục bộ nơi bạn muốn định cấu hình địa chỉ email mà bạn liên kết với các cam kết Git của mình.

  3. Tìm địa chỉ thông báo GitHub của bạn trong Cài đặt cá nhân → Email của bạn trên GitHub . Nó được đề cập trong mô tả của hộp kiểm Giữ địa chỉ email của tôi riêng tư . Thông thường, nó bắt đầu bằng một số nhận dạng duy nhất, cùng với tên người dùng của bạn.

  4. Đặt địa chỉ email trong Git. Sử dụng địa chỉ email không trả lời do GitHub cung cấp.

    • Đặt địa chỉ email của bạn cho mọi kho lưu trữ trên máy tính của bạn

      git config --global user.email "{ID}+{username}@users.noreply.github.com"
      
    • Đặt địa chỉ email của bạn cho một kho lưu trữ duy nhất

      git config user.email "{ID}+{username}@users.noreply.github.com"
      
  5. Đặt lại thông tin tác giả trong lần cam kết cuối cùng của bạn:

    git commit --amend --reset-author
    

    Nếu bạn có nhiều cam kết với địa chỉ e-mail riêng của mình, hãy xem câu trả lời này .

  6. Bây giờ bạn có thể đẩy cam kết bằng địa chỉ e-mail không sai lệch và các cam kết trong tương lai cũng sẽ có địa chỉ e-mail không sai lệch.

    git push
    

Sau khi bạn định cấu hình Git, các cam kết sẽ sử dụng địa chỉ email "không trả lời" thay thế của bạn và bất kỳ yêu cầu thúc đẩy nào không sẽ bị từ chối.


28
Đây phải là câu trả lời được chấp nhận. Câu trả lời của @ sofia-fernandez có thể làm lộ địa chỉ email. Có cách nào bạn có thể làm cho điều này ngắn hơn và dễ đọc hơn một chút không? Bạn có hai phần chính trong đó sự khác biệt duy nhất là --globallá cờ
Connor,

Tôi đã gặp một số rắc rối với giao diện Linux (đã sử dụng thiết bị đầu cuối SourceTree và đã một thời gian kể từ khi tôi sử dụng VI), bạn có thể thêm -m <comment>nếu muốn tránh điều đó.
MikeL

2

Có thể bạn đã bật (hoặc hiện nó được bật theo mặc định) tính năng bảo mật email của GitHub.

Nó được trình bày chi tiết trên trang này tại phần trợ giúp của GitHub .

Tóm lại, có một nút chuyển đổi mà bạn có thể bật (được bật trên tài khoản của bạn) để ngăn chặn bất kỳ sự thúc đẩy nào mà người dùng là địa chỉ email thực của bạn. Thay vào đó, bạn có thể sử dụng địa chỉ ẩn danh (hoặc chọn tắt tính năng này).

Thông tin chi tiết cho cả hai tùy chọn có sẵn tại cùng một trang .


Cảm ơn! Tôi đã ẩn danh quảng cáo email của mình và điều đó đã giải quyết được vấn đề!
user156060

Sử dụng địa chỉ email ẩn danh là một giải pháp tốt. Nếu bạn đã tạo trước ngày 18 tháng 7 năm 2017, bạn có thể muốn thực hiện lại để thêm 7 chữ số ngẫu nhiên vào đó.
SvenAelterman


0
  1. Đi đến Settings
  2. Bấm vào Emails. Cuộn xuống dưới cùng. Keep my email addresses privatephần sẽ ở đó.
  3. Ghi lại id email công khai được đề cập ở đó.
  4. Đặt lại id email chung cục bộ của bạn với id email công khai được đề cập ở bước trước bằng cách sử dụng lệnh sau.
$ git config — global user.email "<user_email_id>"
  1. Hoàn nguyên cam kết cục bộ cuối cùng của bạn đã bị chặn.
$ git reset --soft HEAD~1 
  1. Thực hiện một cam kết mới và thúc đẩy nó. Nó sẽ hoạt động.

-2

Tôi gặp vấn đề tương tự. Giải pháp của tôi là trong hình dưới đây:

Cài đặt GitHub


7
Bạn thiết lập để công bố email của bạn, mở cửa cho tất cả các scraper và như vậy, nhưng sau đó bạn làm mờ nó ra khỏi đó
Lesto

Câu trả lời này khác với câu trả lời được chấp nhận (được đăng gần một năm trước) như thế nào?
Peter Mortensen
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.