Đặt lại nhánh kho lưu trữ cục bộ giống như kho lưu trữ từ xa


3856

Làm cách nào để đặt lại chi nhánh địa phương của tôi giống như chi nhánh trên kho lưu trữ từ xa?

Tôi đã làm:

git reset --hard HEAD

Nhưng khi tôi chạy một git status,

On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)
      modified:   java/com/mycompany/TestContacts.java
      modified:   java/com/mycompany/TestParser.java

Bạn có thể vui lòng cho tôi biết lý do tại sao tôi có những 'sửa đổi' này không? Tôi chưa chạm vào những tập tin này? Nếu tôi đã làm, tôi muốn loại bỏ chúng.


8
Theo đầu ra của git statuslệnh thứ hai của bạn git reset --hard HEADkhông thành công. Bạn đã không dán đầu ra của nó, mặc dù. → Câu hỏi chưa đầy đủ.
Robert Siemer

2
Bạn đang trộn hai vấn đề ở đây: 1) làm thế nào để thiết lập lại một chi nhánh địa phương đến mức điều khiển từ xa là gì và 2) làm thế nào để xóa khu vực dàn của bạn (và có thể là thư mục làm việc), do đó git statusnói nothing to commit, working directory clean. - Xin hãy chỉ ra cụ thể!
Robert Siemer

Câu trả lời:


6697

Đặt chi nhánh của bạn khớp chính xác với chi nhánh từ xa có thể được thực hiện theo hai bước:

git fetch origin
git reset --hard origin/master

Nếu bạn muốn lưu trạng thái của chi nhánh hiện tại trước khi thực hiện việc này (chỉ trong trường hợp), bạn có thể làm:

git commit -a -m "Saving my work, just in case"
git branch my-saved-work

Bây giờ công việc của bạn được lưu trên nhánh "my-save-work" trong trường hợp bạn quyết định bạn muốn nó quay lại (hoặc muốn xem xét nó sau hoặc khác với công việc được cập nhật của bạn).

Lưu ý rằng ví dụ đầu tiên giả định rằng tên của repo từ xa là "origin" và nhánh có tên "master" trong repo từ xa khớp với nhánh đã thanh toán hiện tại trong repo cục bộ của bạn.

BTW, tình huống mà bạn trông có vẻ rất khủng khiếp giống như một trường hợp phổ biến trong đó việc đẩy đã được thực hiện trong nhánh hiện đang được kiểm tra của một kho lưu trữ không trống. Gần đây bạn đã đẩy vào repo địa phương của bạn? Nếu không, thì không phải lo lắng - một cái gì đó khác đã khiến những tập tin này bất ngờ bị sửa đổi. Mặt khác, bạn nên lưu ý rằng không nên đẩy vào kho lưu trữ không trống (đặc biệt là không phải vào chi nhánh hiện đang thanh toán).


4
Cảm ơn bạn vì câu trả lời. Bạn đã nói 'Lưu ý rằng ví dụ đầu tiên giả định rằng tên của repo từ xa là "origin" và nhánh có tên "master" trong repo từ xa khớp với nhánh trong repo cục bộ của bạn.' Làm cách nào tôi có thể kiểm tra kỹ tên của người đại diện từ xa và tên chi nhánh của mình để chắc chắn trước khi tôi thực hiện 'git reset --hard'? Cảm ơn một lần nữa.
hap497

21
Nếu bạn không đặt tên từ xa một cách rõ ràng, thì tên của nó có thể chỉ là "nguồn gốc" (mặc định). Bạn có thể sử dụng "git remote" để lấy danh sách tất cả các tên từ xa. Sau đó, bạn có thể sử dụng "git remote <name>" để xem các nhánh nào đẩy / kéo với nhau (ví dụ: nếu nhánh "chính" của bạn được sao chép từ "chính" trong từ xa có tên "gốc", thì bạn sẽ nhận được một dòng có nghĩa là "chủ hợp nhất với chủ từ xa").
Dan Mould

6
"Không nên đẩy vào kho lưu trữ không trống (và không vào chi nhánh hiện đang thanh toán, đặc biệt là" Tại sao lại như vậy?
LeeGee 20/03/13

27
Ngay sau khi tìm nạp, tôi tin rằng bạn cũng có thể làm git reset FETCH_HEAD --hardnhư vậy, đó cũng là ý nghĩa tương tự.
Jean

6
Nó không xóa các tập tin tôi đã thêm.
Trismegistos

416

Tôi cần phải làm (giải pháp trong câu trả lời được chấp nhận):

git fetch origin
git reset --hard origin/master

Theo dõi bởi:

git clean -f

để loại bỏ các tập tin cục bộ

Để xem những tập tin nào sẽ bị xóa (mà không thực sự loại bỏ chúng):

git clean -n -f

89
Ngoài ra, git clean -d -fnếu có thư mục chưa được theo dõi hiện tại.
Garg

54
cũng vậygit clean -fdx
Swapnil Kotwal

14
Nếu bạn muốn sao chép chính xác chi nhánh từ xa, bạn phải theo dõi bằng git clean -ffdx. Lưu ý rằng thare là hai f.
Trismegistos

6
Đó git clean -flà mảnh thiết yếu tôi cần. Cảm ơn!
dgo

17
cẩn thận sử dụng lệnh sạch. nó có thể xóa các tập tin bị bỏ qua từ các chi nhánh khác.
mikoop

307

Đầu tiên, đặt lại về nhánh đã tải trước đó HEADcủa nhánh ngược dòng:

git reset --hard @{u}

Ưu điểm của việc chỉ định @{u}hoặc hình thức dài dòng của nó @{upstream}là tên của repo và chi nhánh từ xa không phải được chỉ định rõ ràng.

Tiếp theo, khi cần, hãy xóa các tệp không bị theo dõi, tùy chọn cũng với -x:

git clean -df

Cuối cùng, khi cần, nhận các thay đổi mới nhất:

git pull

54
Đây có vẻ là một câu trả lời tốt hơn câu trả lời được chấp nhận, bởi vì nó tự động đặt lại vào nhánh ngược dòng hiện tại thay vì luôn luôn là một câu tĩnh nhưorigin/master
Jon z

@Jonz tại chỗ, @{upstream}rất tiện dụng và có thể được sử dụng trong các bí danh:alias resetthisbranch="git reset --hard @{upstream}"
Siddhartha

1
@GangadharJannu git reset --hardyêu cầu một cam kết, nếu không nó sẽ không biết bạn nên đặt lại cái gì. @{u}chỉ đến một cam kết cụ thể - người đứng đầu chi nhánh được theo dõi, từ khi bạn thực hiện lần cuối a git fetch.
Kristoffer Bakkejord

1
@KristofferBakkejord Cảm ơn bạn đã giải thích nhưng ngay cả khi không có cam kết băm, chúng tôi vẫn có thể làm điều đó git reset --hardmặc dù nó sẽ không được thiết lập lại cho chi nhánh từ xa
Gangadhar JANNU

3
Đối với bất kỳ ai khác gần như đã mở một câu hỏi mới ở đây, nếu bạn git từ Powershell, hãy sử dụng dấu ngoặc kép ( git reset --hard "@{u}"). Mất một lúc để tìm ra điều đó.
MPStoering

112

git reset --hard HEADthực sự chỉ đặt lại trạng thái cam kết cuối cùng. Trong trường hợp này, Head đề cập đến Head của chi nhánh của bạn.

Nếu bạn có một vài cam kết, điều này sẽ không hoạt động ..

Những gì bạn có thể muốn làm, được đặt lại về đầu nguồn gốc hoặc bất cứ thứ gì bạn lưu trữ từ xa được gọi. Tôi có lẽ chỉ cần làm một cái gì đó như

git reset --hard origin/HEAD

Hãy cẩn thận. Đặt lại cứng không thể dễ dàng được hoàn tác. Tốt hơn là làm như Dan gợi ý và phân nhánh một bản sao các thay đổi của bạn trước khi đặt lại.


2
Có một gợi ý không chính xác trong câu trả lời của tôi mà Dan đã bắt được trước đó. Tôi đã chỉnh sửa nó đi, vì tôi không muốn dẫn ai đi lạc đường. Đối với nguồn gốc / chủ hoặc gốc / công cụ CHÍNH, tôi hy vọng điều đó phụ thuộc vào việc bạn có thực sự tìm nạp trước hay không. Nếu bạn chỉ nhân bản nguồn gốc, và nó không có các nhánh khác, mà tôi thấy khá phổ biến, thì nó sẽ thiết lập lại nó tốt. Nhưng tất nhiên, Dan đã đúng.
Mikael Ohlson

73

Tất cả các gợi ý ở trên là đúng, nhưng thường để thực sự thiết lập lại dự án của bạn, bạn cũng cần phải xóa ngay cả các tệp trong đó .gitignore.

Để có được tương đương đạo đức của việc xóa thư mục dự án của bạn và sao chép lại từ xa là:

git fetch
git reset --hard
git clean -x -d -f

Cảnh báo : git clean -x -d -fkhông thể đảo ngược và bạn có thể mất các file và dữ liệu (ví dụ như điều bạn đã bỏ qua sử dụng .gitignore).


12
Cảnh báo: "git clean -x -d -f" là không thể đảo ngược và bạn có thể mất các tệp và dữ liệu trong .gitignore
Akarsh Satija 16/2/2016

Ngắn hơn một chút: git clean -xdfđó là bằng git clean -x -d -f.
Kiryl

git clean -ffxd để xóa mọi thứ không có trong repo
Trismegistos

44

Sử dụng các lệnh dưới đây. Các lệnh này cũng sẽ xóa tất cả các tệp không bị theo dõi khỏi git cục bộ

git fetch origin
git reset --hard origin/master
git clean -d -f

6
Đây là một phản hồi đầy đủ hơn bởi vì không có git clean -d -fchúng tôi vẫn sẽ có một số thứ của nhánh cũ trong thư mục địa phương. Cảm ơn người đàn ông.
Flavio

3
Đây là những gì THỰC SỰ làm cho nó giống như điều khiển từ xa. Sự sạch sẽ là quan trọng.
David S.

1
git sạch -ffxd để thực sự xóa tất cả mọi thứ
Trismegistos

1
Đây chính xác là những gì tôi cần. Cảm ơn
AllJs

38

Câu hỏi trộn lẫn hai vấn đề ở đây:

  1. Làm thế nào để thiết lập lại một nhánh cục bộ đến điểm mà điều khiển từ xa
  2. làm thế nào để xóa khu vực tổ chức của bạn (và có thể là thư mục làm việc), để git statusnói rằngnothing to commit, working directory clean.

Câu trả lời một cửa là:

  1. git fetch --prune (tùy chọn) Cập nhật ảnh chụp nhanh cục bộ của repo từ xa. Các lệnh khác chỉ là cục bộ.
    git reset --hard @{upstream}Đưa con trỏ nhánh cục bộ đến vị trí ảnh chụp nhanh của điều khiển từ xa, cũng như đặt chỉ mục và thư mục làm việc vào các tệp của cam kết đó.
  2. git clean -d --force Loại bỏ các tập tin và thư mục không bị theo dõi gây cản trở git để nói thư mục làm việc của Wikipedia sạch.

1
Các @{upstream}cú pháp đòi hỏi ngược dòng được thiết lập mà xảy ra theo mặc định nếu bạn git checkout <branchname>. - Nếu không thì thay thế nó bằng origin/<branchname>.
Robert Siemer

Thêm -xvào git cleanđể xóa mọi thứ không có trong cam kết (tức là ngay cả các tệp bị bỏ qua với cơ chế .gitignore).
Robert Siemer

22

Đây là điều tôi phải đối mặt thường xuyên và tôi đã khái quát kịch bản mà Wolfgang cung cấp ở trên để làm việc với bất kỳ chi nhánh nào

Tôi cũng đã thêm lời nhắc "bạn có chắc không" và một số phản hồi đầu ra

#!/bin/bash
# reset the current repository
# WF 2012-10-15
# AT 2012-11-09
# see http://stackoverflow.com/questions/1628088/how-to-reset-my-local-repository-to-be-just-like-the-remote-repository-head
timestamp=`date "+%Y-%m-%d-%H_%M_%S"`
branchname=`git rev-parse --symbolic-full-name --abbrev-ref HEAD`
read -p "Reset branch $branchname to origin (y/n)? "
[ "$REPLY" != "y" ] || 
echo "about to auto-commit any changes"
git commit -a -m "auto commit at $timestamp"
if [ $? -eq 0 ]
then
  echo "Creating backup auto-save branch: auto-save-$branchname-at-$timestamp"
  git branch "auto-save-$branchname-at-$timestamp" 
fi
echo "now resetting to origin/$branchname"
git fetch origin
git reset --hard origin/$branchname

3
bạn có thể muốn sử dụng "git remote" để lấy tên của điều khiển từ xa. Trong một số trường hợp nhất định, nó sẽ không phải là "nguồn gốc"
Yurik

17

Với điều kiện là kho lưu trữ từ xa originvà bạn quan tâm đến branch_name:

git fetch origin
git reset --hard origin/<branch_name>

Ngoài ra, bạn đi cho thiết lập lại các chi nhánh hiện tại của originđể HEAD.

git fetch origin
git reset --hard origin/HEAD

Làm thế nào nó hoạt động:

git fetch origin tải xuống mới nhất từ ​​xa mà không cố gắng hợp nhất hoặc rebase bất cứ điều gì.

Sau đó, git resetthiết lập lại <branch_name>chi nhánh đến những gì bạn vừa lấy. Các --hardtùy chọn thay đổi tất cả các file trong cây làm việc của bạn để phù hợp với các tập tin trong origin/branch_name.


14

Tôi đã làm:

git branch -D master
git checkout master

để hoàn toàn thiết lập lại chi nhánh


lưu ý, bạn nên kiểm tra chi nhánh khác để có thể xóa chi nhánh cần thiết


5
Bạn nên đọc câu hỏi một lần nữa, không có gì ảnh hưởng đến điều khiển từ xa, nhưng cài đặt giống như điều khiển từ xa, vì vậy bạn không nên làm bất cứ điều gì với điều khiển từ xa, và điều này giúp ích trong trường hợp của tôi và không phải ở trên.
dùng2846569

Nếu bạn muốn đặt nó giống như điều khiển từ xa, ít nhất bạn nên thực hiện tìm nạp tại một số điểm bạn không đồng ý?
Tim

2
ít nhất bạn nên thử cái này hoặc đọc tài liệu: kernel.org/pub/software/scm/git/docs/git-checkout.html
user2846569

Cách để đi, tôi đã có một tệp .pck bị hỏng trong chi nhánh và các tùy chọn còn lại không hoạt động, cảm ơn !!
LuckyBrain

14

Đây là một kịch bản tự động hóa những gì câu trả lời phổ biến nhất gợi ý ... Xem https://stackoverflow.com/a/13308579/1497139 để biết phiên bản cải tiến hỗ trợ các chi nhánh

#!/bin/bash
# reset the current repository
# WF 2012-10-15
# see /programming/1628088/how-to-reset-my-local-repository-to-be-just-like-the-remote-repository-head
timestamp=`date "+%Y-%m-%d-%H_%M_%S"`
git commit -a -m "auto commit at $timestamp"
if [ $? -eq 0 ]
then
  git branch "auto-save-at-$timestamp" 
fi
git fetch origin
git reset --hard origin/master

10

Nếu bạn gặp vấn đề như tôi, rằng bạn đã thực hiện một số thay đổi, nhưng bây giờ, vì bất kỳ lý do nào bạn muốn thoát khỏi nó, cách nhanh nhất là sử dụng git resetnhư thế này:

git reset --hard HEAD~2

Tôi đã có 2 lần xác nhận không cần thiết, do đó là số 2. Bạn có thể thay đổi nó thành số lần xác nhận để thiết lập lại.

Vì vậy, trả lời câu hỏi của bạn - nếu bạn 5 cam kết trước kho lưu trữ từ xa CHÍNH, bạn nên chạy lệnh này:

git reset --hard HEAD~5

Lưu ý rằng bạn sẽ mất những thay đổi bạn đã thực hiện, vì vậy hãy cẩn thận!


7

Các câu trả lời trước cho rằng nhánh cần đặt lại là nhánh hiện tại (đã kiểm tra). Trong các bình luận, OP hap497 đã làm rõ rằng chi nhánh thực sự đã được kiểm tra, nhưng điều này không được yêu cầu rõ ràng bởi câu hỏi ban đầu. Vì có ít nhất một câu hỏi "trùng lặp", Đặt lại nhánh hoàn toàn về trạng thái kho lưu trữ , không cho rằng nhánh được kiểm tra, đây là một cách thay thế:

Nếu hiện tại chi nhánh "mybranch" chưa được kiểm tra, để đặt lại thành đầu từ xa "myremote / mybranch", bạn có thể sử dụng lệnh cấp thấp này :

git update-ref refs/heads/mybranch myremote/mybranch

Phương pháp này rời khỏi nhánh đã kiểm tra và nó không bị ảnh hưởng. Nó chỉ đơn giản là di chuyển đầu của mybranch sang một cam kết khác, bất cứ điều gì được đưa ra như là đối số thứ hai. Điều này đặc biệt hữu ích nếu nhiều chi nhánh cần được cập nhật lên các đầu từ xa mới.

Tuy nhiên, hãy thận trọng khi thực hiện việc này và sử dụng gitkhoặc một công cụ tương tự để kiểm tra lại nguồn và đích. Nếu bạn vô tình làm điều này trên nhánh hiện tại (và git sẽ không giữ bạn khỏi điều này), bạn có thể bị nhầm lẫn, vì nội dung nhánh mới không khớp với cây làm việc, không thay đổi (để sửa chữa, cập nhật lại nhánh, đến nơi trước đây).


7

Đây là những gì tôi sử dụng thường xuyên:

git fetch upstream develop;
git reset --hard upstream/develop;
git clean -d --force;

Lưu ý rằng nó là thực hành tốt không để thực hiện thay đổi để làm chủ địa phương của bạn / phát triển chi nhánh, nhưng thay vào đó thanh toán cho một chi nhánh đối với bất kỳ sự thay đổi, với tên chi nhánh prepended bởi loại thay đổi, ví dụ như feat/, chore/, fix/, vv Vì vậy bạn chỉ cần kéo thay đổi, không đẩy bất kỳ thay đổi từ chủ. Điều tương tự cho các ngành khác mà người khác đóng góp. Vì vậy, những điều trên chỉ nên được sử dụng nếu bạn đã tình cờ thực hiện các thay đổi đối với một nhánh mà người khác đã cam kết và cần phải đặt lại. Mặt khác, trong tương lai, tránh đẩy đến một chi nhánh mà người khác đẩy tới, thay vào đó hãy kiểm tra và đẩy đến chi nhánh đã nói thông qua chi nhánh đã thanh toán.

Nếu bạn muốn đặt lại chi nhánh địa phương của mình thành cam kết mới nhất trong chi nhánh ngược dòng, điều làm việc cho tôi cho đến nay là:

Kiểm tra điều khiển từ xa của bạn, đảm bảo nguồn gốc và nguồn gốc của bạn là những gì bạn mong đợi, nếu không như mong đợi thì hãy sử dụng git remote add upstream <insert URL>, ví dụ như repo GitHub ban đầu mà bạn đã rẽ nhánh và / hoặc git remote add origin <insert URL of the forked GitHub repo>.

git remote --verbose

git checkout develop;
git commit -m "Saving work.";
git branch saved-work;
git fetch upstream develop;
git reset --hard upstream/develop;
git clean -d --force

Trên GitHub, bạn cũng có thể kiểm tra chi nhánh có cùng tên với địa phương, để lưu công việc ở đó, mặc dù điều này không cần thiết nếu phát triển nguồn gốc có cùng thay đổi với chi nhánh công việc được lưu cục bộ. Tôi đang sử dụng nhánh phát triển làm ví dụ, nhưng nó có thể là bất kỳ tên nhánh hiện có nào.

git add .
git commit -m "Reset to upstream/develop"
git push --force origin develop

Sau đó, nếu bạn cần hợp nhất các thay đổi này với một nhánh khác trong khi có bất kỳ xung đột nào, bảo toàn các thay đổi trong quá trình phát triển, hãy sử dụng:

git merge -s recursive -X theirs develop

Trong khi sử dụng

git merge -s recursive -X ours develop

để duy trì các thay đổi xung đột của Branch_name. Nếu không, sử dụng một mergetool với git mergetool.

Với tất cả những thay đổi cùng nhau:

git commit -m "Saving work.";
git branch saved-work;
git checkout develop;
git fetch upstream develop;
git reset --hard upstream/develop;
git clean -d --force;
git add .;
git commit -m "Reset to upstream/develop";
git push --force origin develop;
git checkout branch_name;
git merge develop;

Lưu ý rằng thay vì ngược dòng / phát triển, bạn có thể sử dụng hàm băm xác nhận, tên nhánh khác, v.v. Sử dụng công cụ CLI như Oh My Zsh để kiểm tra xem nhánh của bạn có màu xanh lá cây cho biết không có gì để cam kết và thư mục làm việc đã sạch ( được xác nhận hoặc cũng có thể kiểm chứng bằng git status). Lưu ý rằng điều này thực sự có thể thêm cam kết so với thượng nguồn phát triển nếu có bất cứ điều gì tự động thêm vào bởi một cam kết, ví dụ như UML sơ đồ, tiêu đề giấy phép, vv, do đó trong trường hợp đó, bạn có thể kéo những thay đổi trên origin developđể upstream develop, nếu cần thiết.


6

Câu trả lời

git clean -d -f

đã bị đánh giá thấp ( -d để xóa thư mục). Cảm ơn!


Và đối với một thư mục repo đầy đủ, sạch 100% không có tệp bổ sung, hãy chạy git clean -xdf. Điều này sẽ xóa bất kỳ và tất cả các tệp mà git không biết và sẽ làm cho thư mục của bạn khớp chính xác với những gì trong danh sách đối tượng của git. Lưu ý rằng bạn có thể thêm -n(ví dụ git clean -nxdf) để thực hiện "what-if" và nó sẽ cho bạn biết những gì nó sẽ xóa mà không thực sự làm gì. ( git sạch )
qJake

5

Nếu bạn muốn quay trở lại HEADtrạng thái cho cả thư mục làm việc và chỉ mục, thì bạn nên git reset --hard HEAD, thay vì để HEAD^. (Đây có thể là một lỗi đánh máy, giống như dấu gạch ngang đơn so với dấu gạch đôi --hard.)

Đối với câu hỏi cụ thể của bạn về lý do tại sao các tệp đó xuất hiện trong trạng thái được sửa đổi, có vẻ như bạn đã thực hiện đặt lại mềm thay vì thiết lập lại cứng. Điều này sẽ khiến các tệp được thay đổi trong HEADcam kết xuất hiện như thể chúng được dàn dựng, đó có thể là những gì bạn đang thấy ở đây.


4

Không có số lượng thiết lập lại và làm sạch dường như có bất kỳ ảnh hưởng nào đến các tệp không bị theo dõi và sửa đổi trong repo git cục bộ của tôi (tôi đã thử tất cả các tùy chọn ở trên). Giải pháp duy nhất của tôi cho vấn đề này là rm repo cục bộ và sao chép lại từ xa.

May mắn là tôi không có bất kỳ chi nhánh nào khác mà tôi quan tâm.

xkcd: Git


1

Giải pháp duy nhất hoạt động trong mọi trường hợp mà tôi đã thấy là xóa và đóng lại. Có thể có một cách khác, nhưng rõ ràng cách này không để lại trạng thái cũ bị bỏ lại ở đó, vì vậy tôi thích nó hơn. Bash one-liner bạn có thể đặt làm macro nếu bạn thường làm mọi thứ rối tung trong git:

REPO_PATH=$(pwd) && GIT_URL=$(git config --get remote.origin.url) && cd .. && rm -rf $REPO_PATH && git clone --recursive $GIT_URL $REPO_PATH && cd $REPO_PATH

* giả sử các tệp .git của bạn không bị hỏng


4
bạn cũng có thể chỉ cần cài đặt lại hệ điều hành của bạn nếu bạn muốn chắc chắn!
Sebastian Scholle

1

Bạn đã quên tạo một nhánh tính năng và đã cam kết trực tiếp với chủ do nhầm lẫn?

Bạn có thể tạo nhánh tính năng ngay bây giờ và đặt lại tổng thể mà không ảnh hưởng đến worktree (hệ thống tệp cục bộ) để tránh kích hoạt các bản dựng, kiểm tra và sự cố với khóa tệp:

git checkout -b feature-branch
git branch -f master origin/master

1

Chỉ có 3 lệnh sẽ làm cho nó hoạt động

git fetch origin
git reset --hard origin/HEAD
git clean -f

-3

Nếu bạn không lưu các thay đổi cục bộ của mình, nhưng vẫn muốn cập nhật kho lưu trữ của mình để khớp với nguồn gốc / ĐẦU, bạn có thể chỉ cần bỏ các thay đổi cục bộ của mình và sau đó kéo:

git stash
git pull
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.