Pertanyaan Git untuk pemula: Panduan praktis definitif


Ok, setelah melihat posting ini oleh PJ Hyett, Saya telah memutuskan untuk melompat sampai akhir dan pergi bersama Git.

Jadi yang saya butuhkan adalah pemula praktis memandu ke Git. "Pemula" didefinisikan sebagai seseorang yang tahu bagaimana menangani kompilator mereka, mengerti sampai tingkat tertentu apa Makefile adalah, dan telah menyentuh kontrol sumber tanpa memahaminya dengan baik.

"Praktis" didefinisikan sebagai orang ini tidak ingin masuk ke rincian tentang apa yang dilakukan Git di latar belakang, dan bahkan tidak peduli (atau tahu) bahwa itu didistribusikan. Jawaban Anda mungkin mengisyaratkan kemungkinan, tetapi cobalah untuk membidik pemula yang ingin menyimpan repositori 'utama' pada 'server' yang didukung dan aman, dan memperlakukan repositori lokal mereka hanya sebagai sumber daya 'klien'.

Begitu:

Instalasi / Pengaturan

Bekerja dengan kode

Pemberian tag, percabangan, rilis, garis dasar

Lain

Referensi pemula Git lainnya

Menggali Git

Saya akan pergi melalui entri dari waktu ke waktu dan 'merapikan' mereka sehingga mereka memiliki tampilan / nuansa yang konsisten dan mudah untuk memindai daftar - jangan ragu untuk mengikuti "penjelasan singkat-header" sederhana - daftar instruksi - gotchas dan info tambahan "template. Saya juga akan menautkan ke entri dari daftar butir di atas sehingga mudah ditemukan nanti.


854
2017-11-26 09:26


asal


Jawaban:


Bagaimana Anda membuat proyek / repositori baru?

Sebuah repositori git hanyalah sebuah direktori yang berisi khusus .git direktori.

Ini berbeda dari sistem kontrol versi "terpusat" (seperti subversi), di mana "repositori" di-host di server jauh, yang Anda checkout ke direktori "copy pekerjaan". Dengan git, copy pekerjaan Anda aku s repositori.

Cukup jalankan git init di direktori yang berisi file yang ingin Anda lacak.

Sebagai contoh,

cd ~/code/project001/
git init

Ini menciptakan sebuah .git (Tersembunyi) folder di direktori saat ini.

Untuk membuat proyek baru, jalankan git init dengan argumen tambahan (nama direktori yang akan dibuat):

git init project002

(This is equivalent to: mkdir project002 && cd project002 && git init)

Untuk memeriksa apakah jalur saat ini berada dalam repositori git, jalankan saja git status - jika bukan repositori, ia akan melaporkan "fatal: Bukan repositori git"

Anda juga bisa daftar .git direktori, dan periksa mengandung file / direktori yang serupa dengan yang berikut:

$ ls .git
HEAD         config       hooks/       objects/
branches/    description  info/        refs/

Jika karena alasan apa pun Anda ingin "de-git" repositori (Anda ingin berhenti menggunakan git untuk melacak proyek itu). Hapus saja .git direktori pada tingkat dasar repositori.

cd ~/code/project001/
rm -rf .git/

Peringatan: Ini akan menghancurkan semua riwayat revisi, semua tag Anda, segala sesuatu git telah dilakukan. Ini tidak akan menyentuh file "saat ini" (file yang saat ini Anda lihat), tetapi perubahan sebelumnya, file yang dihapus dan seterusnya tidak dapat dipulihkan!


118
2017-11-25 00:49



GUI untuk git


Git GUI

Termasuk dengan git - Run git gui dari baris perintah, dan Windows msysgit installer menambahkannya ke menu Start.

Git GUI dapat melakukan sebagian besar dari apa yang perlu Anda lakukan dengan git. Termasuk perubahan tahap, konfigurasi git dan repositori, perubahan push, buat / checkout / hapus cabang, gabung, dan banyak hal lainnya.

Salah satu fitur favorit saya adalah shortcut "stage line" dan "stage hunk" di menu klik kanan, yang memungkinkan Anda melakukan bagian tertentu dari file. Anda dapat mencapai hal yang sama melalui git add -i, tetapi saya merasa lebih mudah digunakan.

Ini bukan aplikasi tercantik, tetapi bekerja di hampir semua platform (berdasarkan Tcl / Tk)

Tangkapan layar | sebuah screencast


GitK

Juga termasuk dengan git. Ini adalah penampil riwayat git, dan memungkinkan Anda memvisualisasikan sejarah repositori (termasuk cabang, saat dibuat, dan digabungkan). Anda dapat melihat dan melakukan pencarian.

Berjalan dengan baik bersama git-gui.


Gitnub

Aplikasi Mac OS X. Terutama setara dengan git log, tetapi memiliki beberapa integrasi dengan github (seperti "Tampilan jaringan").

Terlihat cantik, dan cocok dengan Mac OS X. Anda dapat mencari repositori. Kritik terbesar dari Gitnub adalah bahwa hal itu menunjukkan sejarah secara linier (satu cabang pada suatu waktu) - tidak memvisualisasikan percabangan dan penggabungan, yang dapat menjadi penting dengan git, meskipun ini adalah peningkatan yang direncanakan.

Unduh tautan, ubah log dan tangkapan layar | repositori git


GitX

Berniat menjadi "gitk clone for OS X".

Hal ini dapat memvisualisasikan riwayat percabangan non-linear, melakukan commit, melihat dan melakukan pencarian, dan memiliki beberapa fitur bagus lainnya seperti mampu "Quicklook" file apa pun dalam revisi (ruang tekan dalam tampilan file-list), ekspor file apa pun (via drag dan drop).

Ini jauh lebih baik diintegrasikan ke dalam OS X daripada git-gui/gitk, dan cepat dan stabil bahkan dengan repositori yang sangat besar.

Repositori git asli pieter belum diperbarui baru-baru ini (lebih dari setahun pada saat penulisan). Cabang yang lebih aktif dipelihara tersedia di brotherbard / gitx - itu menambahkan "sidebar, ambil, tarik, dorong, tambahkan remote, gabung, cherry-pick, rebase, clone, clone to"

Unduh | Tangkapan layar | repositori git | garpu saudara tiri | garpu laullon


SmartGit

Dari beranda:

SmartGit adalah front-end untuk   sistem kontrol versi terdistribusi Git   dan berjalan di Windows, Mac OS X, dan   Linux. SmartGit ditujukan untuk   pengembang yang lebih memilih pengguna grafis   antarmuka melalui klien baris perintah,   menjadi lebih produktif dengan Git -   DVCS paling kuat saat ini.

Anda dapat mengunduhnya dari situs web mereka.

Unduh


TortoiseGit

Versi TortoiseSVN Git untuk pengguna Windows.

Ini adalah porting TortoiseSVN ke TortoiseGit Rilis terbaru 1.2.1.0 Rilis ini dapat menyelesaikan tugas biasa, seperti komit, tampilkan log, diff dua versi, buat cabang dan tag, Buat patch dan sebagainya. Lihat ReleaseNotes untuk detail. Selamat datang untuk berkontribusi proyek ini.

Unduh


QGit

QGit adalah penampil Git GUI yang dibangun di atas   Qt / C ++.

Dengan qgit Anda akan dapat menjelajah   riwayat revisi, lihat konten tambalan   dan mengubah file, secara grafis   mengikuti perkembangan yang berbeda   ranting.

Unduh


gitg

gitg adalah penampil repositori git   penargetan gtk + / GNOME. Salah satu utamanya   tujuannya adalah untuk menyediakan lebih banyak   pengalaman pengguna terpadu untuk git   frontends di beberapa desktop. Saya t   apakah ini tidak menulis   aplikasi lintas platform, tetapi oleh   kolaborasi erat dengan yang serupa   klien untuk sistem operasi lain   (seperti GitX untuk OS X).

fitur

  • Jelajahi riwayat revisi.
  • Menangani repositori besar (memuat repositori linux, 17000+ revisi, kurang dari 1 detik).
  • Komit perubahan.
  • Hunian individu panggung / unstage.
  • Kembalikan perubahan.
  • Tampilkan perbedaan warna pada perubahan dalam revisi.
  • Jelajahi pohon untuk revisi yang diberikan.
  • Ekspor bagian pohon dari revisi yang diberikan.
  • Berikan setiap refspec yang mana perintah seperti 'git log' dapat dipahami untuk membangun sejarah.
  • Tampilkan dan beralih antar cabang dalam tampilan riwayat.

Unduh: rilis atau sumber


Gitbox

Gitbox adalah grafik Mac OS X   antarmuka untuk kontrol versi Git   sistem. Dalam satu jendela yang Anda lihat   cabang, sejarah dan kerja   status direktori.

Operasi sehari-hari mudah: panggung   dan perubahan di luar panggung dengan kotak centang.   Komit, tarik, gabungkan, dan tekan dengan   satu klik. Klik dua kali perubahan menjadi   tampilkan diff dengan FileMerge.app.

Unduh


Gity

Situs web Gity tidak memiliki banyak informasi, tetapi dari tangkapan layar di sana tampaknya menjadi kaya sumber open source OS X git gui.

Unduh atau sumber


Meld

Meld adalah alat diff dan penggabungan visual.   Anda dapat membandingkan dua atau tiga file dan   mengeditnya di tempat (pembaruan diff   secara dinamis). Anda dapat membandingkan dua atau   tiga folder dan file peluncuran   perbandingan. Anda dapat menelusuri dan melihat   copy pekerjaan dari versi populer   sistem kontrol seperti CVS,   Subversi, Bazaar-ng dan Mercurial   [dan Git].

Unduh


Katana

A Git GUI untuk OSX oleh Steve Dekorte.

Sepintas, lihat cabang terpencil mana   memiliki perubahan untuk menarik dan repositori lokal   memiliki perubahan untuk mendorong. The git ops dari   tambahkan, komit, tekan, tarik, tag, dan setel ulang   didukung serta diff visual   dan penelusuran visual dari hirarki proyek   yang menyoroti perubahan dan penambahan lokal.

Gratis untuk 1 repositori, $ 25 untuk lebih.

Unduh


Sprout (sebelumnya GitMac)

Berfokus untuk membuat Git mudah digunakan. Fitur asli Cocoa (mac-seperti) UI, browsing repositori cepat, kloning, push / pull, percabangan / penggabungan, diff visual, cabang terpencil, akses mudah ke Terminal, dan banyak lagi.

Dengan membuat tindakan Git yang paling umum digunakan yang intuitif dan mudah dilakukan, Sprout (sebelumnya GitMac) menjadikan Git mudah digunakan. Kompatibel dengan sebagian besar alur kerja Git, Sprout sangat bagus untuk para perancang dan pengembang, kolaborasi tim, dan pengguna pemula dan mahir.

Unduh | Situs web


Menara

Git GUI yang kaya fitur untuk Mac OSX. Uji coba gratis 30 hari, $ 59USD untuk lisensi pengguna tunggal.

Unduh | Situs web


EGit

EGit adalah penyedia Eclipse Team untuk sistem kontrol versi Git.   Git adalah SCM terdistribusi, yang berarti setiap pengembang memiliki salinan lengkap   dari semua riwayat setiap revisi kode, membuat kueri terhadap   sejarahnya sangat cepat dan serba bisa.

Proyek EGit sedang mengimplementasikan alat Eclipse di atas JGit   Implementasi Java dari Git.

Unduh | Situs web


Ekstensi Git

Open Source for Windows - menginstal semua yang Anda butuhkan untuk bekerja dengan Git dalam satu paket, mudah digunakan.

Git Extensions adalah perangkat untuk bekerja dengan Git pada Windows lebih intuitif. Ekstensi shell akan terintegrasi dalam Windows Explorer dan menyajikan menu konteks pada file dan direktori. Ada juga plugin Visual Studio untuk menggunakan git dari Visual Studio.

Unduh

Terima kasih banyak dbr untuk menguraikan tentang hal-hal git gui.


SumberTree

SourceTree adalah a bebas Klien Mac untuk Git, Mercurial, dan SVN. Dibangun oleh Atlassian, orang-orang di belakang BitBucket, tampaknya berfungsi dengan baik dengan sistem VC, yang memungkinkan Anda untuk menguasai alat tunggal untuk digunakan dengan semua proyek Anda, namun mereka dikendalikan oleh versi. Berfitur lengkap, dan GRATIS.

Siap Pakai & Dikemas secara Fitur untuk pengguna pemula dan lanjutan:

Tinjau perubahan yang keluar dan masuk.   Cherry-pick antar cabang.   Penanganan patch, rebase, simpanan / rak dan banyak lagi.

Unduh | Situs web 



110
2017-11-25 01:04



Nah, terlepas dari fakta bahwa Anda meminta agar kami tidak "hanya" link ke sumber daya lain, itu cukup bodoh ketika sudah ada komunitas yang tumbuh (dan tumbuh) sumber daya yang benar-benar cukup baik: Git Community Book. Serius, pertanyaan 20+ ini dalam sebuah pertanyaan akan menjadi sesuatu tetapi ringkas dan konsisten. Git Community Book tersedia dalam bentuk HTML dan PDF dan menjawab banyak pertanyaan Anda dengan jawaban yang jelas, terformat dengan baik, dan ditinjau oleh rekan sejawat, serta dalam format yang memungkinkan Anda melompat langsung ke masalah Anda.

Sayangnya, jika posting saya benar-benar mengganggu Anda maka saya akan menghapusnya. Katakan saja begitu.


59
2017-11-27 04:58



Cara mengonfigurasinya untuk mengabaikan file:

Kemampuan untuk memiliki git mengabaikan file yang tidak ingin Anda lacak sangat berguna.

Untuk mengabaikan file atau set file, Anda menyediakan pola. Sintaks pola untuk git cukup sederhana, tetapi kuat. Ini berlaku untuk ketiga file yang berbeda yang akan saya sebutkan di bawah.

  • Sebuah baris kosong mengabaikan file, umumnya digunakan sebagai pemisah.
  • Garis menatap dengan # berfungsi sebagai komentar.
  • Itu ! awalan bersifat opsional dan akan meniadakan pola. Setiap pola negatif yang cocok akan mengesampingkan pola prioritas yang lebih rendah.
  • Mendukung ekspresi canggih dan kartu liar
    • Contoh: Pola: *. [oa]  akan mengabaikan semua file dalam repositori yang diakhiri dengan .o atau .a (objek dan file arsip)
  • Jika sebuah pola memiliki direktori yang diakhiri dengan slash git hanya akan cocok dengan direktori dan jalur di bawahnya. Ini tidak termasuk file reguler dan tautan simbolis dari pertandingan.
  • Garis miring utama akan cocok dengan semua file dalam nama path tersebut.
    • Ex: Pola itu /*.c akan cocok dengan file foo.c tapi tidak bar / awesome.c

Contoh yang bagus dari gitignore (5) halaman manual:

$ git status
[...]
# Untracked files:
[...]
#       Documentation/foo.html
#       Documentation/gitignore.html
#       file.o
#       lib.a
#       src/internal.o
[...]
$ cat .git/info/exclude
  # ignore objects and archives, anywhere in the tree.
  *.[oa]
$ cat Documentation/.gitignore
# ignore generated html files,
*.html
# except foo.html which is maintained by hand
!foo.html
$ git status
[...]
# Untracked files:
[...]
#       Documentation/foo.html
[...]

Umumnya ada tiga cara berbeda untuk mengabaikan file yang tidak terlacak.

1) Abaikan untuk semua pengguna repositori:

Tambahkan file bernama .gitignore ke akar copy pekerjaan Anda.

Edit .gitignore untuk mencocokkan preferensi Anda untuk file mana yang seharusnya / tidak boleh diabaikan.

git add .gitignore 

dan lakukan setelah selesai.

2) Abaikan hanya salinan dari repositori Anda:

Tambah / Edit file $ GIT_DIR / info / kecualikan dalam copy pekerjaan Anda, dengan pola yang Anda sukai.

Ex: copy pekerjaan saya adalah ~ / src / project1 jadi saya akan mengedit ~ / src / project1 / .git / info / exclude

Kamu sudah selesai!

3) Abaikan dalam semua situasi, pada sistem Anda: 

Pola abaikan global untuk sistem Anda dapat masuk dalam file bernama apa pun yang Anda inginkan.

Punyaku pribadi dipanggil ~ / .gitglobalignore 

Saya kemudian dapat membiarkan git mengetahui file ini dengan mengedit saya ~ / .gitconfig file dengan baris berikut:

core.excludesfile = ~/.gitglobalignore

Kamu sudah selesai!

Saya menemukan itu gitignore halaman manual menjadi sumber daya terbaik untuk informasi lebih lanjut.


56
2017-11-27 13:25



Bagaimana Anda 'menandai' serangkaian revisi tertentu

Bagaimana Anda 'menandai' 'tag' atau 'merilis' serangkaian revisi tertentu untuk sekumpulan file tertentu sehingga Anda selalu dapat menariknya nanti?

Menggunakan git tag perintah.

Untuk sekadar "menandai" revisi saat ini, Anda hanya akan menjalankan ..

git tag -a thetagname
git tag -a 0.1
git tag -a 2.6.1-rc1 -m 'Released on 01/02/03'

Untuk daftar tag saat ini, jalankan saja git tag tanpa argumen, atau -l (huruf kecil L):

$ git tag -a thetagname # and enter a message, or use -m 'My tag annotation'
$ git tag -l
thetagname

Untuk menghapus tag, Anda menggunakan -d bendera:

$ git tag -d thetagname 
Deleted tag 'thetagname'
$ git tag
[no output]

Untuk menandai komitmen tertentu (sebelumnya), Anda cukup melakukannya ..

git tag [tag name] [revision SHA1 hash]

Sebagai contoh:

git tag 1.1.1 81b15a68c6c3e71f72e766931df4e6499990385b

Catatan: secara default, git membuat tag "ringan" (pada dasarnya referensi ke revisi tertentu). Cara "benar" adalah menggunakan -a bendera. Ini akan meluncurkan editor Anda meminta pesan tag (sama dengan meminta pesan komit, Anda juga dapat menggunakan -m bendera untuk memasok pesan tag pada baris perintah). Menggunakan tag beranotasi membuat objek dengan ID, tanggal, penandanya sendiri (penulis), dan opsional tanda tangan GPG (menggunakan -s menandai). Untuk informasi lebih lanjut tentang ini, lihat posting ini

git tag mytagwithmsg -a -m 'This is a tag, with message'

Dan untuk mencantumkan tag dengan anotasi, gunakan -n1 bendera untuk menunjukkan 1 baris setiap pesan tag (-n245 untuk menunjukkan 245 baris pertama setiap anotasi, dan seterusnya):

$ git tag -l -n1
mytagwithmsg    This is a tag, with message

Untuk informasi lebih lanjut, lihat git-tag (1) Halaman Manual


47
2017-11-27 14:25



Contoh alur kerja dengan GIT.

Git sangat fleksibel dan menyesuaikan baik untuk setiap alur kerja, tetapi tidak menegakkan alur kerja tertentu mungkin memiliki efek negatif sehingga sulit untuk memahami apa yang dapat Anda lakukan dengan git di luar alur kerja "cadangan" linear, dan bagaimana percabangan yang berguna dapat berupa misalnya .

Ini posting blog menjelaskan dengan baik alur kerja yang sangat sederhana namun efektif yang sangat mudah diatur menggunakan git.

mengutip dari posting blog: Kami menganggap asal / master untuk menjadi cabang utama di mana kode sumber HEAD selalu mencerminkan status siap produksi:

Alur kerja telah menjadi cukup populer untuk membuat proyek yang mengimplementasikan alur kerja ini: aliran git 

Ilustrasi bagus dari alur kerja sederhana, di mana Anda membuat semua perubahan dalam pengembangan, dan hanya mendorong untuk menguasai saat kode berada dalam status produksi:

simple workflow

Sekarang katakanlah Anda ingin bekerja pada fitur baru, atau pada refactoring modul. Anda bisa membuat cabang baru, apa yang bisa kita sebut cabang "fitur", sesuatu yang akan memakan waktu lama dan mungkin melanggar beberapa kode. Setelah fitur Anda "cukup stabil" dan ingin memindahkannya "lebih dekat" ke produksi, Anda menggabungkan cabang fitur Anda menjadi pengembangan. Ketika semua bug diurutkan setelah penggabungan dan kode Anda melewati semua tes, Anda mendorong perubahan Anda ke master.

Selama proses ini, Anda menemukan bug keamanan yang mengerikan, yang harus diperbaiki segera. Anda bisa memiliki cabang yang disebut hotfix, yang membuat perubahan yang didorong lebih cepat kembali ke produksi daripada cabang "pengembangan" normal.

Di sini Anda memiliki ilustrasi tentang bagaimana alur kerja fitur / hotfix / pengembangan / produksi ini mungkin terlihat seperti (dijelaskan dengan baik dalam posting blog, dan saya ulangi, posting blog menjelaskan seluruh proses dalam lebih banyak detail dan jauh lebih baik daripada yang saya lakukan .

Git workflow example


46
2017-11-26 01:20



Berikut ini salinan pos PJ Hyett, karena tidak tersedia lagi:

Git Tidak Sulit

23 Nov 2008

Ketika kami memberi tahu orang-orang mengapa mereka harus melakukannya   gunakan Git melalui Subversion, go-to   baris adalah, “Git melakukan Subversion lebih baik   dari Subversion, tetapi tidak banyak   lebih dari itu."

"Banyak lagi" terdiri dari banyak   hal-hal yang membuat Git benar-benar bersinar,   tapi itu bisa sangat luar biasa   yang berasal dari SCM lain seperti   Subversi.

Yang mengatakan, tidak ada yang berhenti   Anda menggunakan Git seperti yang Anda gunakan   Subversi saat Anda membuat   transisi.

Dengan asumsi Anda telah menginstal   perangkat lunak yang diperlukan dan memiliki remote   repositori di suatu tempat, ini adalah bagaimana Anda   akan mengambil kode dan mendorong Anda   berubah kembali dengan Subversion:

$ svn checkout svn://foo.googlecode.com/svn/trunk foo
# make your changes
$ svn commit -m "my first commit"

Dan bagaimana Anda melakukannya di Git:

$ git clone git@github.com:pjhyett/foo.git
# make your changes
$ git commit -a -m "my first commit"
$ git push

Satu lagi perintah untuk mewujudkannya   Git. Perintah ekstra itu besar   implikasi, tetapi untuk tujuan   posting ini, itu saja yang kami bicarakan   tentang, satu perintah ekstra.

Lihat, itu benar-benar tidak sulit.

Memperbarui: Saya akan lalai untuk tidak juga menyebutkan bahwa setara dengan   memperbarui salinan lokal Anda di Subversion   dibandingkan dengan Git svn update dan    git pull, masing-masing. Hanya satu   perintah dalam kedua kasus.


39
2018-05-03 08:56



Bagaimana cara menginstal Git

Di Windows:

Memasang msysgit

Ada beberapa unduhan:

  • Git: Gunakan ini kecuali Anda secara khusus memerlukan salah satu opsi lain di bawah ini.
  • PortableGit: Gunakan ini jika Anda ingin menjalankan Git di PC tanpa menginstal pada PC itu (misalnya menjalankan Git dari drive USB)
  • msysGit: Gunakan ini jika Anda ingin mengembangkan Git sendiri. Jika Anda hanya ingin menggunakan Git untuk anda kode sumber, tetapi tidak ingin mengedit Git kode sumber, Anda tidak memerlukan ini.

Ini juga menginstal bash shell Cygwin, sehingga Anda dapat menggunakan git dalam cangkang yang lebih bagus (daripada cmd.exe), dan juga termasuk git-gui (dapat diakses melalui git guiperintah, atau Start > All Programs > Git menu)

Mac OS X

Menggunakan git-osx-installer, atau Anda juga dapat menginstal dari sumber

Via seorang manajer paket

Memasang git menggunakan manajer paket asli Anda. Misalnya, pada Debian (atau Ubuntu):

apt-get install git-core

Atau di Mac OS X, via MacPorts:

sudo port install git-core+bash_completion+doc

... atau fink:

fink install git

…atau Homebrew:

brew install git

Pada distribusi berbasis Red Hat, seperti Fedora:

yum install git

Di Cygwin, paket Git dapat ditemukan di bawah bagian "devel"

Dari sumber (Mac OS X / Linux / BSD / dll.)

Di Mac OS X, jika Anda memasang Alat Pengembang, Anda dapat mengompilasi Git dari sumber dengan sangat mudah. Unduh versi terbaru Git sebagai .tar.bz atau .tar.gz dari http://git-scm.com/, dan ekstrak itu (klik dua kali di Finder)

Di Linux / BSD / etc. itu harus sama. Misalnya, di Debian (dan Ubuntu), Anda perlu menginstal build-essential paket via apt.

Kemudian di Terminal, cd ke tempat Anda mengekstrak file (Menjalankan cd ~/Downloads/git*/ harus bekerja), dan kemudian jalankan ..

./configure && make && sudo make install

Ini akan menginstal Git ke tempat default (/usr/local - jadi git akan masuk /usr/local/bin/git)

Ini akan meminta Anda memasukkan kata sandi (untuk sudo), ini agar dapat menulis ke /usr/local/ direktori, yang hanya bisa diakses oleh pengguna "root" jadi sudo diperlukan!

Jika Anda menginstalnya di suatu tempat yang terpisah (sehingga file Git tidak bercampur dengan alat lain), gunakan --prefix dengan perintah configure:

./configure --prefix=/usr/local/gitpath
make
sudo make install

Ini akan menginstal git biner ke dalam /usr/local/bin/gitpath/bin/git - jadi Anda tidak perlu mengetik itu setiap kali Anda, Anda harus menambahkan ke Anda $PATH dengan menambahkan baris berikut ke dalam ~/.profile:

export PATH="${PATH}:/usr/local/bin/gitpath/bin/"

Jika Anda tidak memiliki akses sudo, Anda dapat menggunakan --prefix=/Users/myusername/bin dan instal ke direktori home Anda. Ingat untuk menambahkan ~/bin/ untuk $PATH

Naskah x-git-update-ke-versi terbaru mengotomatiskan banyak ini:

Skrip ini memperbarui klon lokal saya dari git repo (localy di ~/work/track/git), kemudian konfigurasikan, instal (pada /usr/local/git-git describe) dan memperbarui /usr/local/git symlink.

Dengan cara ini, saya bisa /usr/local/git/bin di saya PATH dan saya selalu menggunakan versi terbaru.

Versi terbaru dari skrip ini juga menginstal halaman manual. Anda perlu men-tweak Anda MANPATH untuk memasukkan /usr/local/git/share/man direktori.


33
2017-08-29 01:33



Git Reset

Katakanlah Anda membuat tarikan, gabungkan ke kode Anda, dan putuskan Anda tidak menyukainya. Gunakan git-log, atau tig, dan temukan hash di mana pun Anda ingin kembali (mungkin commit terakhir Anda sebelum tarik / gabung) salin hash, dan lakukan:

# Revert to a previous commit by hash:
git-reset --hard <hash>

Alih-alih hash, Anda dapat menggunakan HEAD ^ sebagai jalan pintas untuk komit sebelumnya.

# Revert to previous commit:
git-reset --hard HEAD^

32
2017-11-25 01:02



Bagaimana Anda mengatur repositori tim bersama?

Cara menyiapkan a normal repositori dijelaskan sini - tetapi bagaimana Anda mengatur repositori tim yang dapat menarik dan mendorong semua orang dari dan ke?

Menggunakan sistem file NFS bersama

Dengan asumsi tim Anda sudah memiliki misalnya keanggotaan grup bersama yang dapat digunakan.

mkdir /your/share/folder/project.git
cd /your/share/folder/project.git
newgrp yourteamgroup # if necessary
git init --bare --shared

Untuk mulai menggunakan repositori ini, hal yang paling mudah dilakukan adalah mulai dari repositori lokal yang sudah Anda gunakan:

cd your/local/workspace/project
git remote add origin /your/share/folder/project.git
git push origin master

Orang lain sekarang dapat mengkloning ini dan mulai bekerja:

cd your/local/workspace
git clone /your/share/folder/project.git

Menggunakan SSH

Buat akun pengguna di server target. Baik Anda menggunakan akun tanpa kata sandi, akun dengan kata sandi, atau penggunaan authorized_keys benar-benar bergantung pada tingkat keamanan yang Anda butuhkan. Melihat Mengkonfigurasi Git melalui SSH untuk beberapa informasi lebih lanjut.

Jika semua pengembang menggunakan akun yang sama untuk mengakses repositori bersama ini, Anda tidak perlu menggunakan --shared pilihan seperti di atas.

Setelah menghasut repositori dengan cara yang sama seperti di atas, Anda melakukan dorongan awal seperti ini:

cd your/local/workspace/project
git remote add origin user@server:/path/to/project.git
git push origin master

Lihat kesamaannya dengan yang di atas? Satu-satunya hal yang mungkin terjadi selain itu adalah SSH yang meminta kata sandi jika akun tersebut memiliki kata sandi. Jika Anda mendapatkan prompt ini pada akun tanpa kata sandi server SSH mungkin telah dinonaktifkan PermitEmptyPasswords.

Kloning sekarang terlihat seperti ini:

cd your/local/workspace
git clone user@server:/path/to/project.git

31
2018-05-03 09:08



git status adalah temanmu, sering menggunakannya. Baik untuk menjawab pertanyaan seperti:

  • Apa yang baru saja dilakukan oleh perintah itu?
  • Cabang apa yang saya pakai?
  • Perubahan apa yang akan saya lakukan, dan apakah saya lupa sesuatu?
  • Apakah saya berada di tengah-tengah sesuatu yang terakhir kali saya kerjakan dalam proyek ini (hari, minggu, atau mungkin bulan yang lalu)?

Tidak seperti, katakanlah svn status, git status bahkan hampir mendekati proyek besar. Saya sering merasa tenang ketika belajar git untuk sering menggunakannya, untuk memastikan model mental saya tentang apa yang sedang terjadi itu akurat. Sekarang saya kebanyakan hanya menggunakannya untuk mengingatkan diri sendiri apa yang telah saya ubah sejak komitmen terakhir saya.

Tentunya, ini jauh lebih berguna jika gitignore Anda dikonfigurasi dengan benar.


28
2017-11-25 00:52