bản sao git

bản sao git

Đây là lệnh git-clone có thể chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình giả lập trực tuyến MAC OS

CHƯƠNG TRÌNH:

TÊN


git-clone - Sao chép kho lưu trữ vào một thư mục mới

SYNOPSIS


git nhân bản [--template = ]
[-l] [-s] [--không có liên kết cứng] [-q] [-n] [--bare] [--mirror]
[-o ] [-NS ] [-u ] [--thẩm quyền giải quyết ]
[--dissociate] [--separate-git-dir ]
[--chiều sâu ] [- [no-] một nhánh]
[--recursive | --recurse-submodules] [-]
[ ]

MÔ TẢ


Sao chép một kho lưu trữ vào một thư mục mới được tạo, tạo các nhánh theo dõi từ xa cho
mỗi nhánh trong kho lưu trữ được nhân bản (hiển thị bằng git branch -r), đồng thời tạo và kiểm tra
ra một nhánh ban đầu được phân tách từ nhánh hiện đang hoạt động của kho lưu trữ nhân bản.

Sau khi sao chép, một tìm nạp git thuần túy không có đối số sẽ cập nhật tất cả theo dõi từ xa
các nhánh và một git pull không có đối số ngoài ra sẽ hợp nhất nhánh chính từ xa
vào nhánh chính hiện tại, nếu có (điều này không đúng sự thật khi "--single-branch" được đưa ra;
xem bên dưới).

Cấu hình mặc định này đạt được bằng cách tạo tham chiếu đến các đầu nhánh từ xa
trong refs / remotes / origin và bằng cách khởi tạo remote.origin.url và remote.origin.fetch
các biến cấu hình.

LỰA CHỌN


--cục bộ, -l
Khi kho lưu trữ để sao chép từ trên một máy cục bộ, cờ này sẽ bỏ qua
Cơ chế vận chuyển "nhận biết Git" và sao chép kho lưu trữ bằng cách tạo một bản sao của HEAD và
mọi thứ dưới các đối tượng và thư mục refs. Các tệp trong thư mục .git / objects /
được liên kết cứng để tiết kiệm dung lượng khi có thể.

Nếu kho lưu trữ được chỉ định là một đường dẫn cục bộ (ví dụ: / path / to / repo), thì đây là
mặc định, và --local về cơ bản là no-op. Nếu kho lưu trữ được chỉ định dưới dạng URL,
thì cờ này bị bỏ qua (và chúng tôi không bao giờ sử dụng các tối ưu hóa cục bộ). Xác định
--no-local sẽ ghi đè mặc định khi / path / to / repo được đưa ra, bằng cách sử dụng
Git vận chuyển thay thế.

- không có liên kết cứng
Buộc quá trình sao chép từ một kho lưu trữ trên hệ thống tệp cục bộ để sao chép các tệp
trong thư mục .git / objects thay vì sử dụng liên kết cứng. Điều này có thể mong muốn nếu
bạn đang cố gắng sao lưu kho lưu trữ của mình.

- chia sẻ, -s
Khi kho lưu trữ để sao chép nằm trên máy cục bộ, thay vì sử dụng liên kết cứng,
tự động thiết lập .git / đối tượng / thông tin / thay thế để chia sẻ các đối tượng với nguồn
kho. Kho lưu trữ kết quả bắt đầu mà không có bất kỳ đối tượng nào của riêng nó.

LƯU Ý: đây là một hoạt động có thể nguy hiểm; làm không sử dụng nó trừ khi bạn hiểu những gì
nó có. Nếu bạn sao chép kho lưu trữ của mình bằng cách sử dụng tùy chọn này và sau đó xóa các nhánh (hoặc
sử dụng bất kỳ lệnh Git nào khác khiến mọi cam kết hiện có không được tham chiếu) trong nguồn
kho lưu trữ, một số đối tượng có thể trở nên không được tham chiếu (hoặc treo lơ lửng). Những đối tượng này có thể là
bị loại bỏ bởi các hoạt động Git thông thường (chẳng hạn như git commit) tự động gọi git gc
--tự động. (Nhìn thấy git-gc(1).) Nếu các đối tượng này bị xóa và được tham chiếu bởi
kho lưu trữ nhân bản, sau đó kho lưu trữ nhân bản sẽ bị hỏng.

Lưu ý rằng việc chạy gói git mà không có tùy chọn -l trong kho lưu trữ được nhân bản với -s sẽ
sao chép các đối tượng từ kho lưu trữ nguồn vào một gói trong kho lưu trữ nhân bản, xóa
tiết kiệm không gian đĩa của clone -s. Tuy nhiên, nó là an toàn để chạy git gc, sử dụng
-l tùy chọn theo mặc định.

Nếu bạn muốn phá vỡ sự phụ thuộc của một kho lưu trữ được sao chép bằng -s trên nguồn của nó
kho lưu trữ, bạn có thể chỉ cần chạy git repack -a để sao chép tất cả các đối tượng từ nguồn
kho lưu trữ thành một gói trong kho lưu trữ nhân bản.

--thẩm quyền giải quyết
Nếu kho lưu trữ tham chiếu nằm trên máy cục bộ, hãy tự động thiết lập
.git / đối tượng / thông tin / thay thế để lấy các đối tượng từ kho tài liệu tham khảo. Sử dụng một
kho lưu trữ đã tồn tại như một kho lưu trữ thay thế sẽ yêu cầu ít đối tượng hơn được sao chép
từ kho lưu trữ được nhân bản, giảm chi phí lưu trữ mạng và cục bộ.

LƯU Ý: xem LƯU Ý cho tùy chọn - shared, và cả --dissociate option.

--phân ly
Mượn các đối tượng từ các kho lưu trữ tham chiếu được chỉ định với các tùy chọn --reference
chỉ để giảm chuyển mạng và ngừng vay nợ từ chúng sau khi một bản sao được thực hiện bởi
lập bản sao địa phương cần thiết của các đối tượng mượn. Tùy chọn này cũng có thể được sử dụng khi
sao chép cục bộ từ một kho lưu trữ đã mượn các đối tượng từ người khác
kho lưu trữ — kho lưu trữ mới sẽ mượn các đối tượng từ cùng một kho lưu trữ và điều này
tùy chọn có thể được sử dụng để ngừng vay.

--yên lặng, -q
Hoạt động nhẹ nhàng. Tiến trình không được báo cáo cho luồng lỗi tiêu chuẩn. Lá cờ này là
cũng được chuyển tới lệnh 'rsync' khi được cung cấp.

--dài dòng, -v
Chạy dài dòng. Không ảnh hưởng đến việc báo cáo trạng thái tiến độ đối với lỗi tiêu chuẩn
dòng.

--phát triển
Trạng thái tiến độ được báo cáo trên luồng lỗi tiêu chuẩn theo mặc định khi nó
được gắn vào một thiết bị đầu cuối, trừ khi -q được chỉ định. Cờ này buộc trạng thái tiến trình đồng đều
nếu luồng lỗi tiêu chuẩn không được dẫn đến thiết bị đầu cuối.

- không thanh toán, -n
Không có việc kiểm tra HEAD nào được thực hiện sau khi quá trình nhân bản hoàn tất.

--trần trụi
Làm một trần Kho lưu trữ Git. Đó là, thay vì tạo và đặt
hồ sơ quản trị trong /.git, làm cho chính nó là $ GIT_DIR.
Điều này rõ ràng ngụ ý -n vì không có nơi nào để kiểm tra cây làm việc.
Ngoài ra, các đầu nhánh ở điều khiển từ xa được sao chép trực tiếp sang nhánh cục bộ tương ứng
đầu, mà không cần ánh xạ chúng tới refs / remotes / origin /. Khi tùy chọn này được sử dụng,
các nhánh theo dõi từ xa cũng như các biến cấu hình liên quan được tạo.

--gương
Thiết lập một bản sao của kho lưu trữ nguồn. Điều này ngụ ý --bare. So với --bare,
--mirror không chỉ ánh xạ các nhánh cục bộ của nguồn tới các nhánh cục bộ của mục tiêu,
nó ánh xạ tất cả các tham chiếu (bao gồm các nhánh theo dõi từ xa, ghi chú, v.v.) và thiết lập
cấu hình refspec để tất cả các ref này bị ghi đè bởi một bản cập nhật từ xa git
trong kho lưu trữ mục tiêu.

--gốc , -o
Thay vì sử dụng nguồn gốc tên từ xa để theo dõi kho lưu trữ ngược dòng, hãy sử dụng
.

--chi nhánh , -NS
Thay vì trỏ HEAD mới được tạo vào nhánh được nhân bản trỏ tới
HEAD của kho lưu trữ, trỏ tới chi nhánh thay thế. Trong một kho lưu trữ không trống, đây là
chi nhánh sẽ được kiểm tra. --branch cũng có thể lấy thẻ và tách
HEAD tại cam kết đó trong kho lưu trữ kết quả.

- gói tải lên , -u
Khi được cung cấp và kho lưu trữ để sao chép từ đó được truy cập qua ssh, điều này chỉ định
đường dẫn không mặc định cho lệnh chạy ở đầu bên kia.

--template =
Chỉ định thư mục mà từ đó các mẫu sẽ được sử dụng; (Xem "HƯỚNG DẪN TEMPLATE"
phần git-init(1).)

--config = , -NS =
Đặt một biến cấu hình trong kho lưu trữ mới được tạo; điều này có hiệu lực
ngay sau khi kho lưu trữ được khởi tạo, nhưng trước khi lịch sử từ xa
đã tìm nạp hoặc bất kỳ tệp nào được kiểm tra. Khóa có cùng định dạng như mong đợi bởi git-
cấu hình(1) (ví dụ: core.eol = true). Nếu nhiều giá trị được cung cấp cho cùng một khóa, mỗi
giá trị sẽ được ghi vào tệp cấu hình. Điều này làm cho nó an toàn, chẳng hạn như thêm
tìm nạp bổ sung refspec cho điều khiển từ xa gốc.

--chiều sâu
Tạo ra một không sâu sao chép với lịch sử bị cắt ngắn với số lần cam kết được chỉ định.
Ngụ ý - nhánh đơn trừ khi - không có nhánh đơn được cung cấp để tìm nạp lịch sử gần
đầu của tất cả các nhánh.

- [no-] một nhánh
Chỉ sao chép lịch sử dẫn đến đầu của một nhánh duy nhất, được chỉ định bởi
- tùy chọn mã vạch hoặc HEAD của điều khiển từ xa nhánh chính trỏ tới. Tìm nạp thêm vào
kho lưu trữ kết quả sẽ chỉ cập nhật nhánh theo dõi từ xa cho nhánh
tùy chọn này đã được sử dụng để nhân bản ban đầu. Nếu HEAD ở điều khiển từ xa không trỏ
tại bất kỳ chi nhánh nào khi - bản sao một nhánh được tạo ra, không có nhánh theo dõi từ xa nào
tạo ra.

--recursive, --recurse-mô-đun con
Sau khi bản sao được tạo, hãy khởi tạo tất cả các mô-đun con bên trong, sử dụng mặc định của chúng
cài đặt. Điều này tương đương với việc chạy cập nhật git submodule --init --recursive
ngay sau khi nhân bản xong. Tùy chọn này bị bỏ qua nếu nhân bản
kho lưu trữ không có worktree / checkout (tức là nếu có --no-checkout / -n, --bare,
hoặc --mirror được đưa ra)

--separate-git-dir =
Thay vì đặt kho lưu trữ nhân bản ở nơi nó được cho là phải ở đó, hãy đặt kho lưu trữ nhân bản
kho lưu trữ tại thư mục được chỉ định, sau đó tạo biểu tượng Git bất khả tri hệ thống tệp
liên kết đến đó. Kết quả là kho lưu trữ Git có thể được tách ra khỏi cây làm việc.


Kho lưu trữ (có thể từ xa) để sao chép từ đó. Xem phần URLS bên dưới để biết thêm
thông tin về việc chỉ định kho lưu trữ.


Tên của một thư mục mới để sao chép vào. Phần "humansh" của nguồn
kho lưu trữ được sử dụng nếu không có thư mục nào được cung cấp rõ ràng (kho lưu trữ cho /path/to/repo.git và
foo cho host.xz: foo / .git). Sao chép vào một thư mục hiện có chỉ được phép nếu
thư mục trống.

GIT URL


Nói chung, các URL chứa thông tin về giao thức truyền tải, địa chỉ của
máy chủ từ xa và đường dẫn đến kho lưu trữ. Tùy thuộc vào giao thức vận tải, một số
thông tin này có thể không có.

Git hỗ trợ các giao thức ssh, git, http và https (ngoài ra, có thể sử dụng ftp và ftps
để tìm nạp và rsync có thể được sử dụng để tìm nạp và đẩy, nhưng chúng không hiệu quả và
không dùng nữa; không sử dụng chúng).

Phương tiện truyền tải gốc (tức là git: // URL) không xác thực và nên được sử dụng với
thận trọng trên các mạng không an toàn.

Các cú pháp sau có thể được sử dụng với chúng:

· Ssh: // [user @] host.xz [: port] /path/to/repo.git/

· Git: //host.xz [: port] /path/to/repo.git/

· Http [s]: //host.xz [: port] /path/to/repo.git/

· Ftp [s]: //host.xz [: port] /path/to/repo.git/

· Rsync: //host.xz/path/to/repo.git/

Một cú pháp giống scp thay thế cũng có thể được sử dụng với giao thức ssh:

· [User @] host.xz: path / to / repo.git /

Cú pháp này chỉ được nhận dạng nếu không có dấu gạch chéo trước dấu hai chấm đầu tiên. Điều này có ích
phân biệt một đường dẫn cục bộ có chứa dấu hai chấm. Ví dụ: đường dẫn cục bộ foo: bar could
được chỉ định dưới dạng đường dẫn tuyệt đối hoặc ./foo:bar để tránh bị hiểu sai thành url ssh.

Các giao thức ssh và git cũng hỗ trợ thêm ~ mở rộng tên người dùng:

· Ssh: // [user @] host.xz [: port] / ~ [user] /path/to/repo.git/

· Git: //host.xz [: port] / ~ [người dùng] /path/to/repo.git/

· [User @] host.xz: / ~ [user] /path/to/repo.git/

Đối với kho lưu trữ cục bộ, cũng được hỗ trợ bởi Git, các cú pháp sau có thể
đã sử dụng:

· /Path/to/repo.git/

· Tệp: ///path/to/repo.git/

Hai cú pháp này chủ yếu là tương đương, ngoại trừ tùy chọn trước đây ngụ ý --local.

Khi Git không biết cách xử lý một giao thức truyền tải nhất định, nó sẽ cố gắng sử dụng
Xa xôi- người trợ giúp từ xa, nếu có. Để yêu cầu rõ ràng một người trợ giúp từ xa,
cú pháp sau có thể được sử dụng:

· ::

ở đâu có thể là một đường dẫn, một máy chủ và đường dẫn hoặc một chuỗi giống như URL tùy ý
được công nhận bởi người trợ giúp từ xa cụ thể đang được gọi. Nhìn thấy người trợ giúp gitremote(1) cho
chi tiết.

Nếu có một số lượng lớn các kho lưu trữ từ xa có tên tương tự và bạn muốn sử dụng
định dạng khác nhau cho chúng (chẳng hạn như các URL bạn sử dụng sẽ được viết lại thành các URL
làm việc), bạn có thể tạo một phần cấu hình của biểu mẫu:

[url " "]
thayOf =

Ví dụ, với điều này:

[url "git: //git.host.xz/"]
thayOf = host.xz: / path / to /
thayOf = công việc:

URL như "work: repo.git" hoặc như "host.xz: /path/to/repo.git" sẽ được viết lại trong bất kỳ
ngữ cảnh có URL là "git: //git.host.xz/repo.git".

Nếu bạn muốn viết lại các URL chỉ để đẩy, bạn có thể tạo một phần cấu hình của
hình thức:

[url " "]
pushInsteadOf =

Ví dụ, với điều này:

[url "ssh: //example.org/"]
pushInsteadOf = git: //example.org/

URL như "git: //example.org/path/to/repo.git" sẽ được ghi lại thành
"ssh: //example.org/path/to/repo.git" cho các lần đẩy, nhưng các lần kéo sẽ vẫn sử dụng bản gốc
URL.

VÍ DỤ


· Sao chép từ thượng nguồn:

$ git clone git: //git.kernel.org/pub/scm/.../linux.git my-linux
$ cd my-linux
$ make

· Tạo một bản sao cục bộ mượn từ thư mục hiện tại mà không cần kiểm tra mọi thứ
ngoài:

$ git clone -l -s -n. ../copy
$ cd ../bản
$ git show-nhánh

· Sao chép từ ngược dòng trong khi mượn từ một thư mục cục bộ hiện có:

$ git clone --reference /git/linux.git
git://git.kernel.org/pub/scm/.../linux.git
linux của tôi
$ cd my-linux

· Tạo một kho lưu trữ trống để công bố các thay đổi của bạn với công chúng:

$ git clone --bare -l /home/proj/.git /pub/scm/proj.git

GIT


Một phần của git(1) bộ

Sử dụng git-clone trực tuyến bằng các dịch vụ onworks.net



Các chương trình trực tuyến Linux & Windows mới nhất