Menggunakan perintah kontrol versi Team Foundation

Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Anda dapat menggunakan perintah kontrol versi untuk melakukan hampir semua tugas Team Foundation Version Control (TFVC) yang dapat Anda lakukan di Visual Studio. Anda juga dapat menggunakan perintah kontrol versi untuk melakukan beberapa tugas yang tidak dapat dilakukan di Visual Studio. Untuk menjalankan perintah kontrol versi dari prompt perintah atau dalam skrip, Anda menggunakan alat ini tf.exe .

Menjalankan perintah

Untuk meluncurkan prompt perintah Visual Studio, dari Mulai Windows, pilih Perintah Pengembang untuk VS2022 atau pintasan versi yang lebih lama.

Catatan

Untuk Visual Studio 2019 dan versi yang lebih baru, tf.exe biner tidak lagi berada di lokasi tetap di jalur penginstalan Visual Studio seperti pada beberapa rilis sebelumnya, misalnya, C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE. Jika skrip Anda menggunakan tf.exe, jangan mengkodekan jalur ke file berdasarkan jalur penginstalan Visual Studio.

Dalam kebanyakan kasus, Anda menjalankan perintah kontrol versi dalam konteks direktori yang dipetakan di ruang kerja. Misalnya, $/SiteApp/Main/ dipetakan ke c:\\code\\SiteApp\\Main\\. Untuk mendapatkan versi terbaru semua item di ruang kerja, gunakan perintah berikut:

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

Menyiapkan mesin pengembangan Anda dan mengelola ruang kerja

Ruang kerja Anda adalah salinan lokal basis kode tim Anda. Karena ini adalah salinan lokal di komputer pengembangan Anda, Anda dapat mengembangkan dan menguji kode Anda dalam isolasi sampai Anda siap untuk memeriksa pekerjaan Anda. Berikut adalah beberapa perintah untuk mengelola ruang kerja Anda:

Untuk informasi selengkapnya, lihat sumber daya berikut:

Mengembangkan aplikasi Anda

Gunakan perintah ini untuk mengembangkan aplikasi Anda di bawah kontrol versi dengan tim Anda:

  • Tambahkan perintah: Menambahkan file dan folder ke kontrol versi.
  • Perintah Checkout (atau Edit): Memeriksa file dan mengubah status perubahan yang tertunda untuk diedit.
  • Perintah Hapus (Kontrol Versi Team Foundation): Menghapus file dan folder dari server Azure DevOps dan menghapusnya dari disk.
  • Dapatkan perintah: Dapatkan (unduhan) versi terbaru atau versi tertentu dari satu atau beberapa file atau folder dari Azure DevOps Server ke ruang kerja.
  • Perintah Ganti nama (Kontrol Versi Team Foundation): Mengubah nama atau jalur file atau folder.
  • Perintah Status: Menampilkan informasi tentang perubahan tertunda pada file dan folder di ruang kerja atau di shelveset.
  • Perintah Batalkan: Membuang perubahan tertunda yang ditentukan pada file atau folder.
  • Perintah Batalkan penghapusan: Memulihkan item yang sebelumnya dihapus.

Untuk informasi selengkapnya, lihat Mengembangkan aplikasi Anda di kontrol versi Team Foundation.

Menangguhkan pekerjaan Anda

Untuk berbagai alasan, terkadang Anda perlu menyisihkan beberapa atau semua pekerjaan Anda yang sedang berlangsung. Untuk menangguhkan dan melanjutkan pekerjaan Anda, dan untuk mengelola shelveset Anda, gunakan perintah ini:

Untuk informasi selengkapnya, lihat Menangguhkan pekerjaan Anda dan mengelola rak Anda.

Berkontribusi pada pekerjaan Anda

checkin Gunakan perintah untuk memeriksa kode Anda ke basis kode tim:

  • Perintah checkin: Memeriksa perubahan tertunda pada file atau folder ke server.

Untuk informasi selengkapnya, lihat Memeriksa pekerjaan Anda ke basis kode tim.

Mengelola file dan menyelesaikan masalah

Gunakan sumber daya di bagian berikut untuk mengelola file.

Menampilkan dan mengelola file dan folder kontrol versi

Untuk informasi selengkapnya, lihat Menggunakan Penjelajah Kontrol Sumber untuk mengelola file di bawah kontrol versi.

Menampilkan dan mengelola versi sebelumnya

Untuk informasi selengkapnya, lihat Menampilkan dan mengelola versi sebelumnya.

Membandingkan folder dan file

  • Perintah perbedaan: Membandingkan perbedaan antara file dan shelveset.
  • Perintah Folderdiff: Membandingkan perbedaan antara file dalam dua folder.

Untuk informasi selengkapnya, lihat Menampilkan dan mengelola versi sebelumnya.

Mengatasi konflik file

  • Atasi perintah: Mengatasi konflik antara item di ruang kerja Anda dan di server.

Untuk informasi selengkapnya, lihat Mengatasi konflik Kontrol Versi Team Foundation.

Bekerja dengan kunci kontrol versi

  • Perintah kunci: Mengunci atau membuka kunci file dan folder.

Untuk informasi selengkapnya, lihat Bekerja dengan kunci kontrol versi.

Mengisolasi risiko

Gunakan perintah berikut untuk mengisolasi risiko dengan menggunakan cabang:

Untuk informasi selengkapnya, lihat Menggunakan cabang untuk mengisolasi risiko di Kontrol Versi Team Foundation.

Mengelola kontrol versi

Gunakan perintah berikut untuk mengelola sistem kontrol versi Anda:

Untuk informasi selengkapnya, lihat Mengonfigurasi pengaturan check-out.

Mendapatkan bantuan tentang perintah kontrol versi

Gunakan perintah berikut untuk mendapatkan informasi terperinci tentang perintah kontrol versi:

Memahami sintaks perintah

Sintaks setiap perintah muncul di bagian atas setiap artikel referensi.

Argumen yang diperlukan dan opsional

Argumen yang tidak dikurung diperlukan. [Tanda Kurung] menunjukkan argumen opsional yang tidak diperlukan untuk menyelesaikan perintah. Namun, beberapa argumen opsional memiliki default yang diterapkan ke perintah meskipun Anda tidak menentukan opsi .

Argumen eksklusif

Saat opsi dipisahkan oleh pipa (|), Anda dapat menentukan salah satu opsi.

Argumen verbatim dan yang dapat diganti

Item yang tidak diapit dalam tanda kurung adalah opsi yang Anda sertakan verbatim. Item yang diapit dalam tanda kurung sudut (< dan >) adalah argumen yang harus Anda ganti dengan karakter aktual untuk melakukan perintah.

Pintasan perintah dan alias

Beberapa perintah mendukung pintasan. Misalnya, Anda dapat memanggil perintah Hapus dengan atau tf deletetf del.

Contoh

Misalnya, pertimbangkan perintah Checkout:

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

Contoh ini mencakup argumen berikut:

  • <item-spec>: Anda harus mengganti argumen ini dengan spesifikasi item yang mengidentifikasi item yang Anda periksa.
  • Argumen berikut bersifat opsional. Jika Anda tidak menyediakannya, tidak ada efek yang berlaku untuk perintah:
    • /lock:(none|checkin|checkout): Jika Anda tidak menentukan /lock opsi , sistem akan menggunakan /lock:none secara default. Jika tidak, Anda dapat menentukan salah satu opsi kunci lainnya.
    • /recursive: Jika Anda ingin memeriksa beberapa item secara rekursif dalam folder, Anda harus menentukan opsi ini secara verbatim.
    • /login:<username>, <password>: Jika Anda ingin menjalankan perintah sebagai pengguna lain, Anda harus menentukan /login opsi verbatim dan mengganti <username> dengan nama pengguna. Jika perlu, ganti <password> dengan kata sandi pengguna.

Tentukan item yang terpengaruh oleh perintah

Anda dapat menggunakan spesifikasi item dan spesifikasi versi untuk menentukan item mana yang dipengaruhi oleh perintah.

Menggunakan argumen spesifikasi item untuk menentukan item yang terpengaruh

Anda menggunakan spesifikasi item untuk menentukan item yang terpengaruh oleh perintah. Anda dapat menentukan item baik di komputer klien atau di server Azure DevOps Anda. Anda dapat menggunakan karakter kartubebas seperti * dan ?.

Argumen spesifikasi item klien

Argumen spesifikasi item klien menentukan jalur ke item pada komputer klien seperti:

  • Folder, misalnya, c:\code\SiteApp\Main\SolutionA\.
  • File, misalnya, c:\code\SiteApp\Main\SolutionA\Project1\program.cs.
  • Beberapa file, misalnya, c:\code\SiteApp\Main\SolutionA\*.cs.
  • Jalur konvensi penamaan universal (UNC), seperti \\myshare\code\SiteApp\Main.

Argumen spesifikasi item server

Argumen spesifikasi item server menentukan jalur ke item di server Azure DevOps Anda seperti:

  • Folder, misalnya, $/SiteApp/Main/SolutionA.
  • File, misalnya, $/SiteApp/Main/SolutionA/Project1/program.cs.
  • Beberapa file, misalnya, $/SiteApp/Main/SolutionA/*.cs.

Anda biasanya menggunakan argumen spesifikasi item server saat Anda perlu menjalankan perintah pada item yang tidak ada di komputer klien. Misalnya, Anda sedang mengerjakan mesin pengembangan. Jika Anda perlu mendapatkan beberapa data riwayat revisi tentang beberapa item yang berada dalam kumpulan proyek yang tidak Anda kerjakan, Anda bisa menggunakan perintah berikut:

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

Beberapa argumen spesifikasi item

Untuk beberapa perintah, Anda dapat menentukan beberapa argumen spesifikasi item, misalnya:

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

Perintah ini memeriksa program.cs dan program2.c.

Menggunakan argumen spesifikasi versi untuk menentukan versi item yang terpengaruh

Anda menggunakan spesifikasi versi untuk menentukan versi item yang terpengaruh oleh perintah. Untuk memberikan spesifikasi versi, Anda dapat:

  • /version Gunakan opsi , misalnya, /version:C44.

  • Tambahkan spesifikasi versi ke spesifikasi item dengan titik koma, misalnya, program1.cs;C44.

Saat Anda menggunakan perintah Riwayat atau perintah Perbedaan, Anda dapat menentukan rentang versi dengan memisahkan versi dengan tilde, misalnya:

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

Gunakan sintaks berikut untuk menentukan spesifikasi versi:

Jenis Sintaks Deskripsi Contoh Hasil
Set perubahan [C]<version-number> Menentukan item berdasarkan nomor set perubahan. Jika item yang berada dalam cakupan tidak dimodifikasi dalam set perubahan yang ditentukan, sistem mengambil versi terbaru item yang terjadi sebelum set perubahan yang ditentukan. Anda dapat menghilangkan C jika Anda hanya menentukan angka. tf get readme.txt /v:C8

tf get readme.txt /v:8

tf get readme.txt;8
Jika readme.txt dimodifikasi di changeset 8, kode contoh mendapatkan versi file tersebut. Jika tidak, ia mendapatkan versi terbaru readme.txt sebelum versi 8.
Label L<label> Menentukan item tempat label diterapkan. tf get readme.txt;LJulyHotFix

tf get /version:LLastKnownGood
Contoh pertama mendapatkan versi readme.txt yang diberi label JulyHotFix. Yang kedua mengambil versi semua item berlabel (dan menghapus item yang tidak diberi label) di ruang kerja seperti yang ada saat set perubahan berlabel LastKnownGood dibuat. Anda dapat menggunakan kode dalam contoh kedua sebagai bagian dari proses build otomatis.
Tanggal dan waktu D<yyyy-mm-ddTxx:xx>

or

D<mm/dd/yyyy>

or

Format .NET Framework yang didukung.

or

Salah satu format tanggal yang didukung pada komputer lokal.
Menentukan set perubahan yang dibuat pada tanggal tertentu pada waktu tertentu. tf get /version:D2022-03-22

tf get /version:D2022-03-22T09:00
Contoh pertama memperbarui ruang kerja agar sesuai dengan basis kode seperti yang ada pada 22 Maret 2022 tengah malam. Yang kedua memperbarui ruang kerja agar sesuai dengan basis kode seperti yang ada pada 22 Maret 2022 pukul 09.00. Untuk informasi selengkapnya tentang format tanggal dan waktu yang didukung .NET Framework, lihat String format tanggal dan waktu DateTime dan Standar.
Ruang kerja saat ini W Menentukan versi di ruang kerja Anda. - -
Ruang kerja yang ditentukan W<workspace-name>; <workspace-owner> Menentukan versi di ruang kerja tertentu. tf get /version:WResolveRIConflicts;PatW Contoh menentukan versi di ResolveRIConflicts ruang kerja yang PatW dimiliki.
Tip T Menentukan versi terbaru. - -

Gunakan opsi untuk mengubah cara fungsi perintah

Anda dapat menggunakan beberapa opsi umum untuk memodifikasi bagaimana perintah berfungsi.

/noprompt Gunakan opsi untuk menekan permintaan input data dan mengalihkan data output

/noprompt Gunakan opsi untuk menekan permintaan input data dan mengalihkan data output ke jendela prompt perintah. Opsi ini dapat berguna saat Anda perlu menggunakan perintah kontrol versi dalam skrip di mana:

  • Perintah dilanjutkan tanpa intervensi oleh pengguna.
  • Data tersedia bagi skrip untuk melakukan operasi, seperti penguraian atau pengambilan.

Saat Anda menggunakan opsi ini, sistem:

  • Menekan semua permintaan untuk input:

    • Pertanyaan tidak diajukan di jendela prompt perintah. Misalnya, saat Anda menggunakan perintah Batalkan dengan opsi ini, sistem tidak meminta Anda untuk mengonfirmasi apakah Anda ingin membatalkan perubahan.
    • Windows dan kotak dialog tidak ditampilkan. Misalnya, Anda dapat menggunakan opsi ini dengan perintah Checkin. Sistem tidak menampilkan kotak dialog Cek Masuk bagi Anda untuk mengonfirmasi item dan item kerja terkait. Sebagai gantinya, sistem memeriksa item tanpa konfirmasi.
  • Mengalihkan data output ke prompt perintah. Misalnya, Anda dapat menggunakan opsi ini dengan perintah Riwayat. Data ditampilkan di jendela prompt perintah alih-alih jendela Riwayat.

/login Gunakan opsi untuk menentukan kredensial

/login Gunakan opsi untuk menentukan akun pengguna server Azure DevOps untuk menjalankan perintah. Opsi ini dapat berguna saat Anda bekerja di komputer anggota tim lain.

Misalnya, Anda bekerja di mesin pengembangan anggota tim Anda. Anda menggunakan perintah Kunci untuk membuka kunci file yang Anda kunci sebelumnya:

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

Jika Anda ingin menghindari kata sandi muncul di prompt perintah, Anda dapat memasukkan perintah tanpa kata sandi:

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

Setelah Anda memasukkan perintah ini, sistem meminta Anda untuk memasukkan kata sandi Anda dalam kotak dialog yang menutupi input Anda.

/lock Gunakan opsi untuk menerapkan atau menghapus kunci

Penting

Sebagai praktik terbaik, gunakan opsi dengan kebijaksanaan /lock . Beri tahu rekan tim Anda mengapa Anda mengunci item dan kapan Anda berencana untuk menghapus kunci.

/lock Gunakan opsi untuk menerapkan atau menghapus kunci secara bersamaan saat Anda menjalankan perintah lain seperti Tambahkan atau Edit.

/lock:(none|checkin|checkout)

Perintah /lock menggunakan opsi berikut:

  • None: Tidak ada kunci yang ditempatkan pada item. Jika kunci sudah ada, kunci akan dihapus.

  • Checkin atau Checkout: Kunci diterapkan. Untuk informasi selengkapnya, lihat Memahami jenis kunci.

Catatan

Dalam beberapa kasus, operasi penguncian dapat gagal:

  • Jika ada pengguna lain yang telah mengunci salah satu item yang ditentukan, operasi penguncian gagal.
  • Jika sudah ada perubahan tertunda pada item yang ditentukan, sistem mengabaikan sakelar ini. Dalam hal ini, Anda harus menggunakan perintah Kunci untuk mengubah kunci pada item.

Gunakan pintasan opsi

Anda dapat mensingkat opsi berikut.

Opsi

Alias Opsi

/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

Memahami kode keluar

Perintah kontrol versi mengembalikan kode keluar berikut:

Keluar dari Kode

Definisi

0

Sukses.

1

Keberhasilan parsial. Setidaknya sesuatu, atau mungkin semuanya, gagal berhasil.

2

Perintah tidak dikenal.

100

Tidak ada yang berhasil.

Misalnya, Anda menjalankan perintah berikut:

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

Jika salah satu file yang Anda coba cek keluar tidak ada di server, perintah mengembalikan 1 untuk menunjukkan keberhasilan parsial.