Team Foundation sürüm denetimi komutlarını kullanma

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Visual Studio'da gerçekleştirebileceğiniz neredeyse tüm Team Foundation Sürüm Denetimi (TFVC) görevlerini gerçekleştirmek için sürüm denetimi komutlarını kullanabilirsiniz. Visual Studio'da yapılamayan birkaç görevi gerçekleştirmek için sürüm denetimi komutlarını da kullanabilirsiniz. Sürüm denetimi komutlarını komut isteminden veya betik içinde çalıştırmak için aracı kullanırsınız tf.exe .

Komut çalıştırma

Visual Studio komut istemini başlatmak için Windows Başlat'tan VS2022 veya önceki sürüm kısayolu için Geliştirici Komut İstemi'ni seçin.

Not

Visual Studio 2019 ve sonraki sürümlerde, tf.exe ikili dosya artık önceki bazı sürümlerde olduğu gibi Visual Studio yükleme yolunda sabit bir konumda değildir. Örneğin, C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE. Betiğiniz kullanıyorsa tf.exe, Visual Studio yükleme yolunu temel alarak dosyanın yolunu sabit kodlamayın.

Çoğu durumda, sürüm denetimi komutunu çalışma alanına eşlenmiş bir dizin bağlamında çalıştırırsınız. Örneğin, $/SiteApp/Main/ ile c:\\code\\SiteApp\\Main\\eşlenir. Çalışma alanı içindeki tüm öğelerin en son sürümünü almak için aşağıdaki komutu kullanın:

c:\code\SiteApp\Main\SolutionA>tf get

Geliştirme makinenizi ayarlama ve çalışma alanlarını yönetme

Çalışma alanınız, ekibinizin kod tabanının yerel bir kopyasıdır. Bu, geliştirme makinenizde yerel bir kopya olduğundan, çalışmanızı iade etmeye hazır olana kadar kodunuzu yalıtarak geliştirebilir ve test edebilirsiniz. Çalışma alanınızı yönetmek için bazı komutlar şunlardır:

Daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın:

Uygulamanızı geliştirin

Uygulamanızı ekibinizle sürüm denetimi altında geliştirmek için şu komutları kullanın:

Daha fazla bilgi için bkz . Team Foundation sürüm denetiminde uygulamanızı geliştirme.

Çalışmanızı askıya alma

Çeşitli nedenlerle, bazen devam eden çalışmalarınızın bir kısmını veya tümünü ayırmanız gerekir. Çalışmanızı askıya alıp sürdürmek ve raf kümelerinizi yönetmek için şu komutları kullanın:

Daha fazla bilgi için bkz . Çalışmanızı askıya alma ve raf kümelerinizi yönetme.

Çalışmanıza katkıda bulunma

Kodunuzu ekibinizin checkin kod tabanına iade etmek için komutunu kullanın:

  • İade etme komutu: Sunucudaki dosya veya klasörlerde bekleyen değişiklikleri iade edin.

Daha fazla bilgi için bkz . Ekibinizin kod tabanında çalışmanızı iade etme.

Dosyaları yönetme ve sorunları çözme

Dosyaları yönetmek için aşağıdaki bölümlerde yer alan kaynakları kullanın.

Sürüm denetimi dosyalarını ve klasörlerini görüntüleme ve yönetme

Daha fazla bilgi için bkz . Sürüm denetimi altındaki dosyaları yönetmek için Kaynak Denetim Gezgini'ni kullanma.

Geçmiş sürümleri görüntüleme ve yönetme

Daha fazla bilgi için bkz . Geçmiş sürümleri görüntüleme ve yönetme.

Klasörleri ve dosyaları karşılaştırma

  • Fark komutu: Dosyalar ve raf kümeleri arasındaki farkları karşılaştırır.
  • Folderdiff komutu: İki klasördeki dosyalar arasındaki farkları karşılaştırır.

Daha fazla bilgi için bkz . Geçmiş sürümleri görüntüleme ve yönetme.

Dosya çakışmalarını çözme

  • Çözümle komutu: Çalışma alanınızdaki ve sunucudaki öğeler arasındaki çakışmaları çözer.

Daha fazla bilgi için bkz. Team Foundation Sürüm Denetimi çakışmalarını çözme.

Sürüm denetimi kilitleriyle çalışma

  • Kilit komutu: Dosya ve klasörleri kilitler veya kilidini açar.

Daha fazla bilgi için bkz . Sürüm denetimi kilitleriyle çalışma.

Riski yalıtma

Dalları kullanarak riski yalıtmak için aşağıdaki komutları kullanın:

Daha fazla bilgi için bkz. Team Foundation Sürüm Denetimi riski yalıtmak için dalları kullanma.

sürüm denetimini Yönetici

Sürüm denetim sisteminizi yönetmek için aşağıdaki komutları kullanın:

Daha fazla bilgi için bkz . Kullanıma alma ayarlarını yapılandırma.

Sürüm denetimi komutları hakkında yardım alma

Sürüm denetimi komutları hakkında ayrıntılı bilgi almak için aşağıdaki komutları kullanın:

Komut söz dizimlerini anlama

Her komutun söz dizimi, her başvuru makalesinin en üstünde görünür.

Gerekli ve isteğe bağlı bağımsız değişkenler

Köşeli ayraçsız bağımsız değişkenler gereklidir. [Köşeli Ayraçlar] komutu tamamlamak için gerekli olmayan isteğe bağlı bağımsız değişkenleri gösterir. Ancak, bazı isteğe bağlı bağımsız değişkenler, seçeneği belirtmeseniz bile komuta uygulanan varsayılan değerlere sahiptir.

Özel bağımsız değişkenler

Seçenekler bir kanalla ()| ayrıldığında, seçeneklerden birini belirtebilirsiniz.

Ayrıntılı ve değiştirilebilir bağımsız değişkenler

Köşeli ayraç içine alınmamış öğeler, ayrıntılı olarak eklediğiniz seçeneklerdir. Köşeli ayraç (< ve >) içine alınmış öğeler, komut gerçekleştirmek için gerçek karakterlerle değiştirmeniz gereken bağımsız değişkenlerdir.

Komut kısayolları ve diğer adlar

Bazı komutlar kısayolları destekler. Örneğin, Delete komutunu veya tf delile tf delete çağırabilirsiniz.

Örnek

Örneğin, Kullanıma Al komutunu göz önünde bulundurun:

tf checkout [/lock:( none|checkin|checkout)] [/recursive] <item-spec> [/login: <username>, [<password>]]

Bu örnek aşağıdaki bağımsız değişkenleri içerir:

  • <item-spec>: Bu bağımsız değişkeni, kullanıma kullandığınız öğeleri tanımlayan bir öğe belirtimi ile değiştirmeniz gerekir.
  • Aşağıdaki bağımsız değişkenler isteğe bağlıdır. Bunları sağlamazsanız, bunların etkilerinden hiçbiri komut için geçerli değildir:
    • /lock:(none|checkin|checkout): Seçeneği belirtmezseniz /lock sistem varsayılan olarak kullanır /lock:none . Aksi takdirde, diğer kilit seçeneklerinden birini belirtebilirsiniz.
    • /recursive: Bir klasördeki birden çok öğeyi yinelemeli olarak kullanıma almak istiyorsanız, bu seçeneği ayrıntılı olarak belirtmeniz gerekir.
    • /login:<username>, <password>: Komutu başka bir kullanıcı olarak çalıştırmak istiyorsanız, verbatim seçeneğini belirtmeniz ve yerine <username> kullanıcının adını kullanmanız /login gerekir. Gerekirse değerini kullanıcının parolası ile değiştirin <password> .

Komuttan etkilenen öğeleri belirtme

Komuttan hangi öğelerin etkileneceğini belirtmek için öğe belirtimlerini ve sürüm belirtimlerini kullanabilirsiniz.

Etkilenen öğeleri belirtmek için bir öğe belirtimi bağımsız değişkeni kullanma

Bir komuttan etkilenen öğeleri belirtmek için bir öğe belirtimi kullanırsınız. Öğeleri bir istemci makinesinde veya Azure DevOps sunucunuzda belirtebilirsiniz. ve gibi * joker karakterler kullanabilirsiniz.

İstemci öğesi belirtim bağımsız değişkenleri

İstemci öğesi belirtimi bağımsız değişkeni, istemci makinesindeki öğelerin yolunu belirtir; örneğin:

  • C:\code\SiteApp\Main\SolutionA\ gibi bir klasör.
  • C:\code\SiteApp\Main\SolutionA\Project1\program.cs gibi bir dosya.
  • C:\code\SiteApp\Main\SolutionA\*.cs gibi birden çok dosya.
  • \\myshare\code\SiteApp\Main gibi bir evrensel adlandırma kuralı (UNC) yolu.

Sunucu öğesi belirtim bağımsız değişkenleri

Sunucu öğesi belirtimi bağımsız değişkeni, Azure DevOps sunucunuzdaki öğelerin yolunu belirtir; örneğin:

  • $/SiteApp/Main/SolutionA gibi bir klasör.
  • $/SiteApp/Main/SolutionA/Project1/program.cs gibi bir dosya.
  • $/SiteApp/Main/SolutionA/*.cs gibi birden çok dosya.

Genellikle istemci makinesinde olmayan öğelerde bir komut çalıştırmanız gerektiğinde sunucu öğesi belirtimi bağımsız değişkenlerini kullanırsınız. Örneğin, bir geliştirme makinesi üzerinde çalıştığınızı varsayalım. Çalışmadığınız bir proje koleksiyonundaki bazı öğeler hakkında düzeltme geçmişi verileri almanız gerekiyorsa, aşağıdaki komutu kullanabilirsiniz:

c:\>tf history /collection:https://fabrikam-3:8080/tfs/DefaultCollection
$/SiteApp/Main/SolutionA/Project1/* /recursive  
/noprompt 

Birden çok öğe belirtimi bağımsız değişkeni

Bazı komutlar için, birden çok öğe belirtimi bağımsız değişkeni belirtebilirsiniz, örneğin:

c:\code\SiteApp\Main\SolutionA\Project1\>tf checkout program1.cs program2.c

Bu komut program.cs ve program2.c.'i kullanıma alır.

Öğelerin etkilenen sürümlerini belirtmek için sürüm belirtimi bağımsız değişkeni kullanma

Bir komuttan etkilenen öğelerin sürümünü belirtmek için bir sürüm belirtimi kullanırsınız. Sürüm belirtimi sağlamak için şunları yapabilirsiniz:

  • /version seçeneğini kullanın, örneğin, /version:C44.

  • Sürüm belirtimini noktalı virgülle bir öğe belirtimine (örneğin, program1.cs;C44) ekleme.

Geçmiş komutunu veya Fark komutunu kullandığınızda, sürümleri bir tilde ile ayırarak bir sürüm aralığı belirtebilirsiniz, örneğin:

c:\code\SiteApp\Main\SolutionA>tf history /noprompt * /recursive /v:D4/12/2022~D4/24/2022

Bir sürüm belirtimi belirtmek için aşağıdaki söz dizimini kullanın:

Tür Sözdizimi Açıklama Örnekler Sonuç
Changeset [C]<version-number> Öğeleri değişiklik kümesi numarasına göre belirtir. Kapsamdaki bir öğe belirtilen değişiklik kümesinde değiştirilmediyse, sistem belirtilen değişiklik kümesinden önce oluşan öğenin en son sürümünü alır. Yalnızca bir sayı belirtirseniz atlayabilirsiniz C . tf get readme.txt /v:C8

tf get readme.txt /v:8

tf get readme.txt;8
değişiklik kümesi 8'de readme.txt değiştirildiyse, örnek kod dosyanın bu sürümünü alır. Aksi takdirde, readme.txt 8 sürümünden önceki en son sürümünü alır.
Etiket L<label> Bir etiketin uygulandığı öğeleri belirtir. tf get readme.txt;LJulyHotFix

tf get /version:LLastKnownGood
İlk örnek, JulyHotFix etiketli readme.txt sürümünü alır. İkincisi, LastKnownGood etiketli değişiklik kümesi oluşturulduğunda var olan çalışma alanında tüm etiketlenmiş öğelerin sürümünü alır (ve etiketlenmemiş öğeleri siler). İkinci örnekteki kodu otomatik derleme işleminin bir parçası olarak kullanabilirsiniz.
Tarih ve saat D<yyyy-mm-ddTxx:xx>

veya

D<mm/dd/yyyy>

veya

.NET Framework tarafından desteklenen herhangi bir biçim.

veya

Yerel makinede desteklenen tarih biçimlerinden herhangi biri.
Belirli bir tarihte belirli bir zamanda oluşturulan değişiklik kümesini belirtir. tf get /version:D2022-03-22

tf get /version:D2022-03-22T09:00
İlk örnek, çalışma alanını 22 Mart 2022'de gece yarısı var olan kod tabanıyla eşleşecek şekilde güncelleştirir. İkincisi, çalışma alanını 22 Mart 2022 saat 09:00'da var olan kod tabanıyla eşleşecek şekilde güncelleştirir. .NET Framework tarafından desteklenen tarih ve saat biçimleri hakkında daha fazla bilgi için bkz . DateTime ve Standard tarih ve saat biçimi dizeleri.
Geçerli çalışma alanı W Çalışma alanınızdaki sürümü belirtir. - -
Belirtilen çalışma alanı W<workspace-name>; <workspace-owner> Belirtilen çalışma alanında sürümü belirtir. tf get /version:WResolveRIConflicts;PatW Örnek, sahip olduğu PatW çalışma alanında ResolveRIConflicts sürümü belirtir.
İpucu T En son sürümü belirtir. - -

Komut işlevlerini değiştirmek için seçenekleri kullanma

Komut işlevlerini değiştirmek için bazı yaygın seçenekleri kullanabilirsiniz.

/noprompt Veri giriş isteklerini engellemek ve çıkış verilerini yeniden yönlendirmek için seçeneğini kullanın

/noprompt Veri girişi isteklerini engellemek ve çıkış verilerini komut istemi penceresine yeniden yönlendirmek için seçeneğini kullanın. Bu seçenek, aşağıdaki durumlarda bir betikte sürüm denetimi komutlarını kullanmanız gerektiğinde yararlı olabilir:

  • Komut, kullanıcının müdahalesi olmadan devam eder.
  • Betiğin üzerinde ayrıştırma veya yakalama gibi işlemler gerçekleştirmesi için veriler kullanılabilir.

Bu seçeneği kullandığınızda sistem:

  • Giriş için tüm istekleri gizler:

    • Sorular komut istemi penceresinde sorulmuyor. Örneğin, bu seçenekle Geri Al komutunu kullandığınızda, sistem değişiklikleri geri almak isteyip istemediğinizi onaylamanızı istemez.
    • Windows ve iletişim kutuları görüntülenmez. Örneğin, bu seçeneği İade Et komutuyla kullanabilirsiniz. Sistem, öğeleri ve ilişkili iş öğelerini onaylamanız için Kontrol iletişim kutusunu görüntülemez. Bunun yerine, sistem öğeleri onay olmadan denetler.
  • Çıktı verilerini komut istemine yönlendirir. Örneğin, Geçmiş komutuyla bu seçeneği kullanabilirsiniz. Veriler, Geçmiş penceresi yerine komut istemi penceresinde görüntülenir.

/login Kimlik bilgilerini belirtmek için seçeneğini kullanın

/login komutunun çalıştırılacak Azure DevOps sunucusu kullanıcı hesabını belirtmek için seçeneğini kullanın. Bu seçenek, başka bir ekip üyesinin makinesinde çalışırken yararlı olabilir.

Örneğin, ekip üyenizin geliştirme makinesinde çalıştığınızı varsayalım. Daha önce kilitlediğiniz bir dosyanın kilidini açmak için Kilitle komutunu kullanırsınız:

c:\code\SiteApp\Main> tf lock /lock:none program.cs /login:<username>,<password>

Komut isteminde parolanızın görünmesini önlemek istiyorsanız, komutu parola olmadan girebilirsiniz:

c:\code\SiteApp\Main> tf lock /lock:none program.cs /login:<username>

Bu komutu girdikten sonra sistem, girişinizi maskeleyen bir iletişim kutusuna parolanızı girmenizi ister.

/lock Kilidi uygulama veya kaldırma seçeneğini kullanma

Önemli

En iyi uygulama olarak seçeneği isteğe bağlı olarak kullanın /lock . Bir öğeyi neden kilitlediğiniz ve kilidi ne zaman kaldırmayı planladığınızı ekip arkadaşlarınıza bildirin.

/lock Ekle veya Düzenle gibi başka bir komut çalıştırdığınızda kilidi uygulamak veya kaldırmak için seçeneğini kullanın.

/lock:(none|checkin|checkout)

/lock komut aşağıdaki seçenekleri kullanır:

  • None: Bir öğeye kilit yerleştirilmemiştir. Bir kilit zaten mevcutsa kaldırılır.

  • Checkin veya Checkout: Bir kilit uygulanır. Daha fazla bilgi için bkz . Kilit türlerini anlama.

Not

Birkaç durumda kilit işlemi başarısız olabilir:

  • Belirtilen öğelerden herhangi birini başka kullanıcılar kilitlemişse, kilitleme işlemi başarısız olur.
  • Belirtilen öğede bekleyen bir değişiklik varsa sistem bu anahtarı yoksayar. Bu durumda, bir öğedeki kilidi değiştirmek için Kilit komutunu kullanmanız gerekir.

Seçenek kısayollarını kullanma

Aşağıdaki seçenekleri kısaltabilirsiniz.

Seçenek

Seçenek Diğer Adı

/comment

-C

/computer

-M

/delete

-D

/force

-P

/format

-F

/help

-?, -H

/lock

-K

/login

-Y

/newname

-N

/noprompt

-I

/owner

-O

/recursive

-R

/server

-S

/slotmode

-X

/template

-T

/user

-U

/version

-V

/workspace

-W

Çıkış kodlarını anlama

Sürüm denetimi komutları aşağıdaki çıkış kodlarını döndürür:

Çıkış Kodu

Tanım

0

Başarılı.

1

Kısmi başarı. En azından bir şey ya da muhtemelen her şey başarılı olamadı.

2

Tanınmayan komut.

100

Hiçbir şey başarılı olmadı.

Örneğin, aşağıdaki komutu çalıştırdığınızı varsayalım:

c:\code\SiteApp\Main\SolutionA\Project1\>tf checkout program1.cs program2.c

Kullanıma almaya çalıştığınız dosyalardan biri sunucuda yoksa, komut kısmi başarıyı göstermek için 1 döndürür.