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:
- Geliştirme makinenizde Team Foundation Sürüm Denetimi ayarlama
- Çalışma alanları oluşturma ve çalışma
Uygulamanızı geliştirin
Uygulamanızı ekibinizle sürüm denetimi altında geliştirmek için şu komutları kullanın:
- Komut ekle: Sürüm denetimine dosya ve klasör ekler.
- Kullanıma Al (veya Düzenle) komutu: Bir dosyayı kullanıma alır ve bekleyen değişiklik durumunu düzenleyerek değiştirir.
- Delete komutu (Team Foundation Sürüm Denetimi): Azure DevOps sunucusundan dosya ve klasörleri kaldırır ve diskten siler.
- Al komutu: Azure DevOps Server'dan çalışma alanına bir veya daha fazla dosya veya klasörün en son sürümünü veya belirtilen sürümünü alır (indirir).
- Yeniden Adlandır komutu (Team Foundation Sürüm Denetimi): Dosya veya klasörün adını veya yolunu değiştirir.
- Durum komutu: Çalışma alanlarındaki veya raf kümesindeki dosya ve klasörlerde bekleyen değişiklikler hakkındaki bilgileri görüntüler.
- Geri Al komutu: Dosya veya klasörlerde belirtilen bekleyen değişiklikleri atar.
- Geri alma komutu: Daha önce silinmiş olan öğeleri geri yükler.
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
- Özellikler (veya Bilgi) komutu: Sürüm denetimindeki öğelerle ilgili bilgileri görüntüler.
- Dir komutu: Sürüm denetim sunucusunun içeriğini görüntüler.
- Destroy komutu (Team Foundation Sürüm Denetimi): Sürüm denetimli dosyaları kalıcı olarak siler.
- LocalVersions komutu: Çalışma alanı öğelerinin sürümlerini görüntüler.
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
- Değişiklik kümesi komutu: Değişiklik kümesi özniteliklerini değiştirir veya görüntüler.
- Geçmiş komutu: Dosya veya klasörlerin düzeltme geçmişini görüntüler.
- Etiket komutu (Team Foundation Sürüm Denetimi): Dosya veya klasörlerdeki etiketleri ekler veya kaldırır.
- Etiketler komutu: Sunucuda kullanımda olan etiketler hakkındaki bilgileri görüntüler.
- Geri alma komutu (Team Foundation Sürüm Denetimi): Değişiklik kümelerinin etkilerini geri alır.
- Etiketi kaldır komutu: Sunucudaki mevcut bir etiketten bir öğeyi kaldırır.
- Görünüm komutu: Bir dosyanın belirtilen sürümünü alır ve görüntüler.
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 del
ile 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
veyaCheckout
: 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.