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:
- Menyiapkan Kontrol Versi Team Foundation di komputer dev Anda
- Membuat dan bekerja dengan ruang kerja
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
- Perintah Properti (atau Info): Menampilkan informasi tentang item dalam kontrol versi.
- Perintah Dir: Menampilkan konten server kontrol versi.
- Perintah Hancurkan (Kontrol Versi Team Foundation): Menghapus file yang dikontrol versi secara permanen.
- Perintah LocalVersions: Menampilkan versi item ruang kerja.
Untuk informasi selengkapnya, lihat Menggunakan Penjelajah Kontrol Sumber untuk mengelola file di bawah kontrol versi.
Menampilkan dan mengelola versi sebelumnya
- Perintah changeset: Mengubah atau menampilkan atribut changeset.
- Perintah Riwayat: Menampilkan riwayat revisi file atau folder.
- Perintah label (Kontrol Versi Team Foundation): Melampirkan atau menghapus label dari file atau folder.
- Perintah label: Menampilkan informasi tentang label yang sedang digunakan di server.
- Perintah putar kembali (Kontrol Versi Team Foundation): Mengembalikan efek changeset.
- Perintah tidak berlabel: Menghapus item dari label yang ada di server.
- Perintah tampilan: Mengambil versi file tertentu dan menampilkannya.
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 delete
tf 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
atauCheckout
: 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.