2012-03-15 34 views
6

Theo tài liệu về git, git pull sẽ thực hiện tìm nạp nhánh hiện tại và sau đó chạy git merge để hợp nhất các thay đổi. Sau khi một đồng nghiệp cam kết và đẩy những thay đổi của anh ấy đến máy chủ, tôi đã đi lấy chúng.Tại sao chạy `git pull` xóa các thay đổi đã cam kết của tôi?

Trước tiên, tôi cam kết thay đổi mà tôi có:

git add src 
git add war 

Chạy git status khẳng định rằng những thay đổi của tôi đã được dàn dựng để được cam kết. Tiếp theo, tôi chạy:

git commit -m "Another commit to work on scrolling" 

Sau đó, tôi kéo xuống thay đổi:

git pull 

này cho tôi xem một số cảnh báo:

remote: Counting objects: 31, done. 
remote: Compressing objects: 100% (16/16), done. 
remote: Total 16 (delta 13), reused 3 (delta 0) 
Unpacking objects: 100% (16/16), done. 
From github.com:FullCreative/Loop 
+ 3f00b3f...2e09a49 master  -> master (forced update) 
Warning: fetch updated the current branch head. 
Warning: fast-forwarding your working tree from 
Warning: commit 3f00b3f6cb6ed6beddb16baa92f1beaa82b6944c. 
Already up-to-date. 

Cuối cùng, tôi đẩy thay đổi của tôi - hay đúng hơn là cố gắng để đẩy họ - tới máy chủ:

git push 

Câu hỏi:

Bây giờ, tại sao điều này lại xóa tất cả thay đổi của tôi? Ngay cả các tệp mà đồng nghiệp của tôi không sửa đổi đã bị xóa khỏi thư mục làm việc của tôi.

điều khiển Output:

Đối triệt để, dưới đây là giao diện điều khiển đăng nhập từ thiết bị đầu cuối của tôi. Điều này cho thấy các lệnh tôi chạy, và đầu ra từ những lệnh:

[email protected]:~$ cd git 
[email protected]:~/git$ l 
Loop/ Loop-1-18.tar.gz 
[email protected]:~/git$ cd Loop 
[email protected]:~/git/Loop$ l 
Loop/ README readme.textile 
[email protected]:~/git/Loop$ l 
Loop/ README readme.textile 
[email protected]:~/git/Loop$ cd Loop 
[email protected]F136FM:~/git/Loop/Loop$ l 
src/ war/ 
[email protected]:~/git/Loop/Loop$ git add src 
[email protected]:~/git/Loop/Loop$ git status 
# On branch master 
# Changes to be committed: 
# (use "git reset HEAD <file>..." to unstage) 
# 
# modified: src/com/fullcreative/loop/Globals.java 
# modified: src/com/fullcreative/loop/LoopController.java 
# modified: src/com/fullcreative/loop/LoopDao.java 
# modified: src/com/fullcreative/loop/LoopDaoJdo.java 
# modified: src/com/fullcreative/loop/LoopService.java 
# new file: src/com/fullcreative/loop/TestLoopController.java 
# 
# Changes not staged for commit: 
# (use "git add <file>..." to update what will be committed) 
# (use "git checkout -- <file>..." to discard changes in working directory) 
# 
# modified: war/WEB-INF/LoopDispatcher-servlet.xml 
# modified: war/WEB-INF/appengine-web.xml 
# modified: war/WEB-INF/applicationContext-security.xml 
# modified: war/WEB-INF/html/index.html 
# modified: war/WEB-INF/web.xml 
# modified: war/js/loop.js 
# 
# Untracked files: 
# (use "git add <file>..." to include in what will be committed) 
# 
# war/WEB-INF/admin/local-storage.html 
[email protected]:~/git/Loop/Loop$ git add war 
[email protected]:~/git/Loop/Loop$ git status 
# On branch master 
# Changes to be committed: 
# (use "git reset HEAD <file>..." to unstage) 
# 
# modified: src/com/fullcreative/loop/Globals.java 
# modified: src/com/fullcreative/loop/LoopController.java 
# modified: src/com/fullcreative/loop/LoopDao.java 
# modified: src/com/fullcreative/loop/LoopDaoJdo.java 
# modified: src/com/fullcreative/loop/LoopService.java 
# new file: src/com/fullcreative/loop/TestLoopController.java 
# modified: war/WEB-INF/LoopDispatcher-servlet.xml 
# new file: war/WEB-INF/admin/local-storage.html 
# modified: war/WEB-INF/appengine-web.xml 
# modified: war/WEB-INF/applicationContext-security.xml 
# modified: war/WEB-INF/html/index.html 
# modified: war/WEB-INF/web.xml 
# modified: war/js/loop.js 
# 
[email protected]:~/git/Loop/Loop$ git commit -m "Another commit to work on scolling" 
[master 3f00b3f] Another commit to work on scolling 
13 files changed, 726 insertions(+), 218 deletions(-) 
create mode 100644 Loop/src/com/fullcreative/loop/TestLoopController.java 
create mode 100644 Loop/war/WEB-INF/admin/local-storage.html 
[email protected]:~/git/Loop/Loop$ git pull 
remote: Counting objects: 31, done. 
remote: Compressing objects: 100% (16/16), done. 
remote: Total 16 (delta 13), reused 3 (delta 0) 
Unpacking objects: 100% (16/16), done. 
From github.com:FullCreative/Loop 
+ 3f00b3f...2e09a49 master  -> master (forced update) 
Warning: fetch updated the current branch head. 
Warning: fast-forwarding your working tree from 
Warning: commit 3f00b3f6cb6ed6beddb16baa92f1beaa82b6944c. 
Already up-to-date. 
[email protected]:~/git/Loop/Loop$ git push 
Everything up-to-date 
[email protected]:~/git/Loop/Loop$ git status 
# On branch master 
nothing to commit (working directory clean) 
[email protected]:~/git/Loop/Loop$ git history 
git: 'history' is not a git command. See 'git --help'. 
[email protected]:~/git/Loop/Loop$ git --help 
usage: git [--version] [--exec-path[=<path>]] [--html-path] 
     [-p|--paginate|--no-pager] [--no-replace-objects] 
     [--bare] [--git-dir=<path>] [--work-tree=<path>] 
     [-c name=value] [--help] 
     <command> [<args>] 

The most commonly used git commands are: 
    add  Add file contents to the index 
    bisect  Find by binary search the change that introduced a bug 
    branch  List, create, or delete branches 
    checkout Checkout a branch or paths to the working tree 
    clone  Clone a repository into a new directory 
    commit  Record changes to the repository 
    diff  Show changes between commits, commit and working tree, etc 
    fetch  Download objects and refs from another repository 
    grep  Print lines matching a pattern 
    init  Create an empty git repository or reinitialize an existing one 
    log  Show commit logs 
    merge  Join two or more development histories together 
    mv   Move or rename a file, a directory, or a symlink 
    pull  Fetch from and merge with another repository or a local branch 
    push  Update remote refs along with associated objects 
    rebase  Forward-port local commits to the updated upstream head 
    reset  Reset current HEAD to the specified state 
    rm   Remove files from the working tree and from the index 
    show  Show various types of objects 
    status  Show the working tree status 
    tag  Create, list, delete or verify a tag object signed with GPG 

See 'git help <command>' for more information on a specific command. 
[email protected]:~/git/Loop/Loop$ git log 
commit 2e09a498829e2b12e4bbdff8f8c39c2ce47dacb7 
Author: Josh Iwata < [email protected]> 
Date: Thu Mar 15 14:25:28 2012 -0700 

    Design revamp 

commit 2927f853041dab06a48861498adc945d6969865a 
Author: James Mortensen <[email protected]> 
Date: Wed Mar 14 09:25:46 2012 -0700 

    Removed Alert. 

commit 07deceb9cb3cda6b913b2bde96970682ecdbddb7 
Author: James Mortensen <[email protected]> 
Date: Wed Mar 14 09:04:12 2012 -0700 

    Added url pattern to the servlet to get rid of the error. 

commit f2d48bb735e5c3f1d3cb88ad80483e5596aaa063 
Author: James Mortensen <[email protected]> 
Date: Tue Mar 13 15:44:28 2012 -0700 

    iJames took over again! 

commit 88fb39c0b37b2dfc5a13e30f212cba525e33f531 
Author: David Raffauf <[email protected]> 
Date: Tue Mar 13 15:42:26 2012 -0700 

    I test update 

commit 5b1af15d166fc766a1a892a13865d9c5be506a6f 
Author: Josh Iwata < [email protected]> 
[email protected]:~/git/Loop/Loop$ git status 
# On branch master 
nothing to commit (working directory clean) 
[email protected]:~/git/Loop/Loop$ git pull 
Already up-to-date. 
[email protected]:~/git/Loop/Loop$ l 
src/ war/ 
[email protected]:~/git/Loop/Loop$ cd src 
[email protected]:~/git/Loop/Loop/src$ l 
cacerts.bin com/ log4j.properties META-INF/ 
[email protected]:~/git/Loop/Loop/src$ cd com 
[email protected]:~/git/Loop/Loop/src/com$ l 
fullcreative/ 
[email protected]:~/git/Loop/Loop/src/com$ cd fullcreative/loop/ 
[email protected]:~/git/Loop/Loop/src/com/fullcreative/loop$ l 
AbstractBaseController.java Comment.java     LoopController.java  PusheableResponse.java 
AccountController.java  EmailService.java    LoopDao.java   samples/ 
Account.java     EnvironmentService.java   LoopDaoJdo.java   security/ 
AccountService.java   FormManagerController.java  Loop.java    Settings.java 
AuthenticatorController.java Globals.java     LoopService.java  TagSubscription.java 
AuthenticatorService.java  GoogleCometChannelService.java LoopServlet.java  UserDao.java 
Cacheable.java    HttpRequestHandler.java   Memcached.java   UserDaoJdo.java 
Card.java      InvitationDetailsDaoJdo.java OAuth2User.java   User.java 
CardManagerController.java InvitationDetails.java   OAuth2UserService.java 
CardTemplateService.java  JSONPResponse.java    PMF.java 
[email protected]:~/git/Loop/Loop/src/com/fullcreative/loop$ cd/
[email protected]:/$ cd 
[email protected]:~$ cd workspace 
[email protected]:~/workspace$ l 
ActiveResponseWebService/   ConversionChromeApp.pem  GAE Spring Security/  LoopSVN/ 
Adaptiv3ChatDemo/     ConversionChromeExtension/ GAE Spring Security Demo/ Loop.tar.gz 
Adaptiv3ChatDemo-2.zip    ConversionSupportChromeApp/ gdata-samples-read-only/ ReverseProxyDemo/ 
Adaptiv3ChatDemo.zip    ConversionSupportLive/  LexLegal/     rhino-for-webapps-demo/ 
AmazonC3Demo/      ConversionSupportLiveNew/ LexMatter/     SB4.0/ 
App-AnswerConnect/     ConversionSupportLiveNew2/ local_db.bin    SB4.0_branch/ 
appengine-java-sdk-1.6.2.1/  ConversionSupportLive.zip Loop/      sokolove_lawfirm/ 
appengine-java-sdk-1.6.2.1.zip  Conversion Support- Mobile/ Loop2/      test/ 
appengine-java-sdk-1.6.3.1/  ConversionSupportWebsite/ Loop-Oauth2-Demo/   Test/ 
appengine-java-sdk-1.6.3.1.zip  ConverstionSupportMobileV1/ LoopRepo/     Thinclient-c3/ 
AppointmentSchedulingAppGAEJ/  ConverstionSupportMobileV2/ LoopRepo-1-12-2-.tar.gz Thinclient-c3.zip 
ChatClientWebservices/    datastore-indexes-auto.xml LoopRepo1-12.tar.gz 
ContactManagementSystemDataStore/ EchopassChatClient/   LoopRepo1-13.tar.gz 
ConversionChromeApp0.1.1109.6.crx FullTextSearchService/  LoopRepo.tar.gz 
[email protected]:~/workspace$ cd Loop 
[email protected]:~/workspace/Loop$ l 
Loop/ README readme.textile 
[email protected]:~/workspace/Loop$ cd Loop 
[email protected]:~/workspace/Loop/Loop$ l 
src/ war/ 
[email protected]:~/workspace/Loop/Loop$ cd src 
[email protected]:~/workspace/Loop/Loop/src$ l 
cacerts.bin com/ log4j.properties META-INF/ 
[email protected]:~/workspace/Loop/Loop/src$ cd com 
[email protected]:~/workspace/Loop/Loop/src/com$ l 
fullcreative/ 
[email protected]:~/workspace/Loop/Loop/src/com$ cd fullcreative/ 
[email protected]:~/workspace/Loop/Loop/src/com/fullcreative$ l 
loop/ 
[email protected]:~/workspace/Loop/Loop/src/com/fullcreative$ cd loop 
[email protected]:~/workspace/Loop/Loop/src/com/fullcreative/loop$ 
[email protected]:~/workspace/Loop/Loop/src/com/fullcreative/loop$ l 
AccountController.java  Card.java      LoopController.java Memcached.java   UserDao.java 
Account.java     Comment.java     LoopDao.java   OAuth2User.java   UserDaoJdo.java 
AccountService.java   EnvironmentService.java  LoopDaoJdo.java  OAuth2UserService.java User.java 
AuthenticatorController.java HttpRequestHandler.java  Loop.java   PMF.java 
AuthenticatorService.java  InvitationDetailsDaoJdo.java LoopService.java  samples/ 
Cacheable.java    InvitationDetails.java  LoopServlet.java  security/ 
[email protected]:~/workspace/Loop/Loop/src/com/fullcreative/loop$ cd ../../../../ 
[email protected]:~/workspace/Loop/Loop$ cd ../../.. 
[email protected]:~$ cd git 
[email protected]:~/git$ l 
Loop/ Loop-1-18.tar.gz 
[email protected]:~/git$ cd Loop 
[email protected]:~/git/Loop$ l 
Loop/ README readme.textile 
[email protected]:~/git/Loop$ cd Loop 
[email protected]:~/git/Loop/Loop$ l 
src/ war/ 
[email protected]:~/git/Loop/Loop$ 

UPDATE:

tôi có thể truy cập vào các cam kết của mình bằng cách kiểm tra ra khỏi băm:

git checkout 3f00b3f6cb6ed6beddb16baa92f1beaa82b6944c 

Vậy tại sao những thứ này không được đưa vào máy chủ của tôi?

CẬP NHẬT # 2

Kết quả git reflog:

3f00b3f [email protected]{0}: checkout: moving from master to 3f00b3f6cb6ed6beddb16baa92f1beaa82b6944c 
2e09a49 [email protected]{1}: checkout: moving from 3f00b3f6cb6ed6beddb16baa92f1beaa82b6944c to master 
3f00b3f [email protected]{2}: checkout: moving from master to 3f00b3f6cb6ed6beddb16baa92f1beaa82b6944c 
2e09a49 [email protected]{3}: pull : forced-update 
3f00b3f [email protected]{4}: commit: Another commit to work on scolling 
2927f85 [email protected]{5}: commit: Removed Alert. 
07deceb [email protected]{6}: commit: Added url pattern to the servlet to get rid of the error. 
f2d48bb [email protected]{7}: commit: iJames took over again! 
88fb39c [email protected]{8}: pull : fast-forward 
a22893e [email protected]{9}: commit: Committing a very important change to intro.css. Not! 
ac19755 [email protected]{10}: pull : fast-forward 
d2a401d [email protected]{11}: commit: This is a test 
85a6328 [email protected]{12}: commit: Modified gitignore yet again. 
251f557 [email protected]{13}: commit: Committing the classpath. Hope it works. 
4e7a428 [email protected]{14}: checkout: moving from local_master to master 
97aa2d7 [email protected]{15}: checkout: moving from master to local_master 
4e7a428 [email protected]{16}: commit: Added Admin panel for making system changes. Modified the title and description so they go into edit 
38dc2fa [email protected]{17}: commit: Added notifications and real time comet. 
bc2f950 [email protected]{18}: commit: Real time updates and chrome notifications. 
bc2f950 [email protected]{19}: commit: Adding TagSubscription class. 
5e696f4 [email protected]{20}: commit: Bulk delete, fixed delete bug, tagging features and subscriptions. Added more server-side caching. Ad 
7b41cc2 [email protected]{21}: commit: adding dropdown plugin files 
d9e3716 HE[email protected]{22}: commit: Added filter list to top, made dynamic, and deployed to 2-20. 
e256d21 [email protected]{23}: commit: Cleaned up the HTML code. 
d9e3716 [email protected]{24}: commit: Third time is a charm. 
3e0863f [email protected]{25}: commit: Here is the 2nd commit for tag-it. 
13e70c8 [email protected]{26}: commit: Added the tag-it tags to the application and connected to the database. 
0893615 [email protected]{27}: commit: Deployed 2-7 and made default version. 
0073e04 [email protected]{28}: commit: Deployed to 2-7 and made the default version. Finalized mobile form, although the error class shadow 
0073e04 [email protected]{29}: commit: test 
4351a93 [email protected]{30}: commit: Added notifications for comments and cleaned up mobile form. 
5674cfb [email protected]{31}: commit: Added Developer API call to switch users for @loopround.com users. 
a22808f [email protected]{32}: commit: updating 
8fa1a39 [email protected]{33}: commit: updating the repository 
8fa1a39 [email protected]{34}: commit: Deployed to http://0-9-2012-1-27.loopaback.appspot.com/ 
4786be1 [email protected]{35}: commit: Updating the inbox counts on each loop on page load. Also changed the style of the inbox count on the 
33bf8d5 [email protected]{36}: commit: Adding elastic JS library. 
095d8e6 [email protected]{37}: commit: Hooked up inbox counts and colors on the loops. 
d3275ef [email protected]{38}: commit: committing. 
a66024c [email protected]{39}: commit: Put in place email notifications for sharing. Put in place more logging statements to catch errors. F 
a66024c [email protected]{40}: commit: Fixed sharing settings and cleaned up some of the code. Fixed the invitation system and also added so 
e87ca75 [email protected]{41}: commit: Fixed sharing settings and cleaned up some of the code. Fixed the invitation system and also added so 
e87ca75 [email protected]{42}: commit: Got rid of login form and also integrated Loop feedback form. 
b2d7da9 [email protected]{43}: commit: Eliminated the login page and also integrated the Feedback Loop Form. 
b2d7da9 [email protected]{44}: commit: Added the Loop Form. 
e7ea0eb [email protected]{45}: commit: Added the Loop Form to the Loop Application and connected it to the services. 
e7ea0eb [email protected]{46}: commit: Trying to get all the files for the settings page in the repo. 
97aa2d7 [email protected]{47}: commit: test 
36d4841 [email protected]{48}: commit: Got the settings page in place so users can be added and removed. 
cf83cbd [email protected]{49}: commit: Committing this file because I want it to accept changes, not have the repository just simply force m 
e7ccb2d [email protected]{50}: commit: Merged Josh's changes, I hope! 
90ee5a5 [email protected]{51}: commit: Merged Josh's changes. Why I have to do this manually, I don't know? 
3fc14b4 [email protected]{52}: commit: Service giving ability to send email to a user. 
2ce4a6c [email protected]{53}: commit: Worked on the UI for adding a user to a Loop. Also fixed the display so it shows all active users ass 
21caa9b [email protected]{54}: commit: Updated the application-manifest.xml file with the new LoopRound name and latest version info. 
4330694 [email protected]{55}: commit: Deployed to http://0-9-2012-1-12-1715.loopaback.appspot.com/# and made the default version. Added in 
adde3cd [email protected]{56}: commit: Can now add new loops from the Loop screen. To rename the loop or access it's settings page; currentl 
6902710 [email protected]{57}: commit: Settings page is functional to edit the loop name. 
6980c79 [email protected]{58}: merge branch 'master' of [email protected]:FullCreative/Loop.git: Fast-forward 
e364173 [email protected]{59}: commit: Added Josh's CSS to style.css. 2nd attempt. 
0e464f1 [email protected]{60}: 

.git/tập tin cấu hình

[core] 
    repositoryformatversion = 0 
    filemode = true 
    logallrefupdates = true 
    autocrlf = false 
[remote "origin"] 
    url = [email protected]:FullCreative/Loop.git 
    fetch = +refs/heads/*:refs/heads/* 
    push = refs/heads/*:refs/heads/* 
[branch "master"] 
    remote = origin 
    merge = refs/heads/master 
+0

'git reflog' nói gì? –

+0

'gây tử vong: Không phải là kho lưu trữ git (hoặc bất kỳ thư mục chính nào): .git'. Tôi hiện đang kiểm tra bằng cách sử dụng băm đó ... – jmort253

+0

Hoặc những gì 'gitk' hiển thị? – CanSpice

Trả lời

6

Tôi nghĩ chìa khóa của vấn đề nằm trong thông báo đáng ngại trên lệnh kéo của bạn: xem nó nói "cập nhật bắt buộc" ở đâu? Đó là cách hơi mơ hồ của Git nói với bạn rằng nhánh (master) đã được tạo lại hoặc được rebased, một không lớn không có trên kho lưu trữ được chia sẻ.

Bạn nên hỏi các cộng tác viên khác nếu họ đã rebased hoặc tạo lại master. Nếu bạn muốn có một cái nhìn hình ảnh về những gì đã xảy ra, hãy thử gitk --all.

Có lẽ không có cách nào tuyệt vời để giải quyết vấn đề của bạn, nhưng điều dễ dàng để làm là chọn cherry mà cam kết trên master (git cherry-pick 3f00b3f) và đẩy lại.

+0

Cảm ơn bạn đã phản hồi. Chúng tôi nghi ngờ "bản cập nhật bắt buộc" đã hết chỗ, xem xét một 'git pull' không được phép ghi đè lên bất cứ điều gì ... Chúng tôi sẽ xem xét điều này. Cảm ơn bạn! – jmort253

+1

Tôi không tin rằng điều này là do một trào ngược ngược dòng. Trong khi bạn sẽ nhận được bản cập nhật bắt buộc nếu nhánh ngược dòng bị xóa, điều đó sẽ không mất bất kỳ thay đổi nào trong nhánh chính tại địa phương của bạn. Và nếu bạn nhìn kỹ, bản cập nhật bắt buộc là 'master -> master', không phải là' master -> origin/master', đó là những gì sẽ xảy ra cho một nhánh theo dõi từ xa thích hợp. Xem câu trả lời của tôi để biết chi tiết về những gì tôi tin là vấn đề. –

+0

+1 - Lệnh chọn cherry đã giúp! Tôi đã có thể đẩy trở lại máy chủ. Bước tiếp theo: Tôi cần phải tìm ra nguyên nhân gây ra việc rebase hoặc giải trí của chủ nhân. – jmort253

8

Những dòng này trông đáng ngờ:

From github.com:FullCreative/Loop 
+ 3f00b3f...2e09a49 master  -> master (forced update) 
Warning: fetch updated the current branch head. 
Warning: fast-forwarding your working tree from 
Warning: commit 3f00b3f6cb6ed6beddb16baa92f1beaa82b6944c. 

Đặc biệt, nếu bạn được cấu hình một cách chính xác, dòng nên chỉ master -> origin/master, hoặc bất cứ tên từ xa của bạn. Thay vào đó, nó đọc master -> master. Điều này chỉ ra rằng chi nhánh master trên điều khiển từ xa đang được ghi trực tiếp vào chi nhánh master trong repo địa phương của bạn; có nghĩa là bạn bị mất tham chiếu đến cam kết của bạn (mặc dù như bạn đã nhận thấy, nó vẫn còn trong repo của bạn, nó chỉ không được tham chiếu bởi bất cứ điều gì). Đây là lý do tại sao git in "Cảnh báo: tìm nạp cập nhật đầu nhánh hiện tại."

Kiểm tra .git/config của bạn. Nó nên chứa một cái gì đó như:

[remote "origin"] 
     url = <some url> 
     fetch = +refs/heads/*:refs/remotes/origin/* 

Tuy nhiên, căn cứ vào lỗi mà bạn nhận được, nó có thể chứa một cái gì đó như:

[remote "origin"] 
     url = <some url> 
     fetch = +refs/heads/*:refs/heads/* 

này cho git rằng khi lấy, nó nên viết giá trị của điều khiển từ xa chi nhánh trực tiếp đến chi nhánh địa phương của bạn. Thông thường, trong cấu hình đúng ở trên, khi bạn tìm nạp từ xa, nó được ghi vào refs/remotes/<remote>/<name>. Điều này cho phép bạn theo dõi cả cam kết ngược dòng và cam kết cục bộ của bạn, để bạn có thể hợp nhất chúng. Trong cấu hình không chính xác, bạn chỉ đơn giản là ghi đè lên ref địa phương của bạn, mất theo dõi những gì bạn đã có ban đầu.

Tôi không chắc chắn cách bạn thiết lập theo cách này; có lẽ bạn đã làm điều gì đó như git clone --mirror hoặc git remote add --mirror=fetch. Bất kể, bạn có thể chỉnh sửa tệp .git/config của mình theo cách thủ công và sửa dòng fetch như được chỉ ra ở trên.

+0

Tôi đã thêm tệp cấu hình vào câu hỏi. Bạn hoàn toàn chính xác về những gì nó chứa. Tốt đoán! fetch được đặt thành 'refs/heads/*' sau ':'. Ngày mai, chúng tôi sẽ thử thêm nguồn gốc và chạy thêm một vài lần thử nghiệm. Tôi đánh giá cao sự giúp đỡ của bạn! – jmort253

2

Để sửa lỗi này, gõ:

git checkout master; git merge 3f00b3f6cb6ed6beddb16baa92f1beaa82b6944c 

Sau đó đi phá án giật người chạy git push --force

+0

Không ai chạy 'git push --force'. Vì ba chúng tôi đang tiên phong trong công ty của chúng tôi như là một sự thay thế CVS, chúng tôi đang học nó với nhau và có mặt khi mỗi người chúng ta đẩy hoặc cam kết. Tôi đã không thấy bất kỳ ai trong chúng ta sử dụng '--force', và nó không được sử dụng trong trường hợp này. – jmort253

+0

Cách * only * theo như tôi biết để có được "cập nhật bắt buộc" là nếu ai đó chạy push - force. –

0

Điều tương tự cũng xảy ra với tôi và sau này dẫn tôi đến một giải pháp sử dụng phần mở rộng git và git bash.

Vì tôi đang sử dụng tiện ích git, tôi không có cửa sổ bảng điều khiển để xem lịch sử của những gì tôi đã làm. Ngoài ra, tôi đã không nhận được bất kỳ cảnh báo và tôi hiếm khi sử dụng git bash vì vậy tôi không quen thuộc với nó.

Tôi tìm thấy ID cam kết bằng cách tìm trong [đường dẫn dự án] \. Git \ logs \ HEAD. Đây là thông tin cuối cùng trong đó:

commit: ################ 
d511e44dca8c3f7f6f8d3985f3ca54874fb67a63 673fd2fbfc5ad78434389c64565904f81aa9a5ad unknown <###.(none)> 1444281107 -0500 pull --progress I:/####/#####+refs/heads/master:refs/heads/master: forced-update 

Tôi không tự cập nhật buộc. Tôi đã cố gắng kéo/đẩy từ/đến một ổ đĩa ngoài và lá thư đã thay đổi kể từ lần cuối cùng tôi làm điều đó vì vậy tôi đã cố gắng nhớ làm thế nào tôi thiết lập nó lần đầu tiên và tôi đã làm điều gì đó sai trái. Nó có thể liên quan đến việc sử dụng trường URL thay vì trường Từ xa.

Để khắc phục nó tôi đã sử dụng này trong git bash:

git checkout 673fd2fbfc5ad78434389c64565904f81aa9a5ad 

mà nạp mã trong VS2010 mà không có một chi nhánh. Sau đó, tôi đã sử dụng các phần mở rộng git để tạo một nhánh mới cho mã, chuyển trở lại master và sáp nhập nhánh mới trở lại master. Điều này sẽ giống như

git checkout master; git merge 673fd2fbfc5ad78434389c64565904f81aa9a5ad 

Vì vậy, nó là khá nhiều giải pháp giống như những người khác ngoại trừ tôi đã phải tìm các cam kết id một cách khác nhau.

Các vấn đề liên quan