Git การใช้งานเบื้องต้น
งาน Git คือการสร้างและบันทึกภาพรวมของโครงการและหลังจากภาพรวมและเปรียบเทียบ บทนี้จะเกี่ยวกับการสร้างและส่งโครงการแนะนำภาพรวมคำสั่งของคุณ
ได้รับในการติดต่อกับคำสั่งเพื่อสร้างโครงการที่
init Git
สร้างไดเรกทอรีใหม่ในที่เก็บ Git กับ Git init คุณสามารถทำไดเรกทอรีใด ๆ ได้ตลอดเวลาที่มีการแปลอย่างสมบูรณ์
init Git บริหารในไดเรกทอรีที่คุณสามารถสร้างเก็บ Git ตัวอย่างเช่นเราสร้างรายการ w3big:
$ mkdir w3big $ cd w3big/ $ git init Initialized empty Git repository in /Users/tianqixin/www/w3big/.git/ # 在 /www/w3big/.git/ 目录初始化空 Git 仓库完毕。
ตอนนี้คุณสามารถดูไดเรกทอรีย่อย .git สร้างในโครงการของคุณ นี่คือพื้นที่เก็บข้อมูล Git ของคุณและข้อมูลทั้งหมดที่เกี่ยวข้องกับภาพรวมของโครงการของคุณจะถูกเก็บไว้ที่นี่
ls -a . .. .git
โคลน Git
ใช้ Git โคลนที่เก็บ Git เพื่อสำเนาเพื่อให้พวกเขาสามารถดูรายการหรือปรับเปลี่ยน
หากคุณจำเป็นต้องมีโครงการความร่วมมือกับคนอื่น ๆ หรือคุณต้องการคัดลอกโครงการ, ดูรหัสที่คุณสามารถโคลนโครงการ เรียกใช้:
git clone [url]
รายการ [url] คุณต้องการคัดลอก
ตัวอย่างเช่นเราโคลนโครงการใน Github:
$ git clone [email protected]:schacon/simplegit.git Cloning into 'simplegit'... remote: Counting objects: 13, done. remote: Total 13 (delta 0), reused 0 (delta 0), pack-reused 13 Receiving objects: 100% (13/13), done. Resolving deltas: 100% (2/2), done. Checking connectivity... done.
หลังจากโคลนจะเสร็จสมบูรณ์ในไดเรกทอรีปัจจุบันจะสร้าง simplegit ไดเรกทอรี:
$ Cd simplegit / $ LS README Rakefile libการดำเนินการที่จะคัดลอกระเบียนทั้งหมดของโครงการ
$ ls -a . .. .git README Rakefile lib $ cd .git $ ls HEAD description info packed-refs branches hooks logs refs config index objects
โดยค่าเริ่มต้น Git จะเป็นไปตามชื่อของ URL ที่คุณให้ระบุรายการที่จะสร้างไดเรกทอรีโครงการท้องถิ่นของคุณ URL ที่มักจะเป็นชื่อรายการสุดท้าย / หลัง ถ้าคุณต้องการชื่อที่แตกต่างกันคุณสามารถเพิ่มชื่อที่คุณต้องการหลังจากคำสั่ง
ภาพรวมพื้นฐาน
งาน Git คือการสร้างและบันทึกภาพรวมของโครงการและหลังจากภาพรวมและเปรียบเทียบ บทนี้จะเกี่ยวกับการสร้างภาพรวมของโครงการของคุณและส่งแนะนำคำสั่ง
Git เพิ่ม
Git เพิ่มคำสั่งเพื่อเพิ่มไฟล์ไปยังแคชที่เราเพิ่มต่อไปนี้สองไฟล์:
$ touch README $ touch hello.php $ ls README hello.php $ git status -s ?? README ?? hello.php $
คำสั่ง status Git จะใช้ในการดูสถานะปัจจุบันของโครงการ
ต่อไปเราจะดำเนินการเพิ่มคำสั่ง Git เพื่อเพิ่มไฟล์:
$ git add README hello.php
ตอนนี้เราดำเนินการสถานะ Git คุณสามารถมองเห็นทั้งสองเอกสารได้รับการเพิ่มที่จะไป
$ git status -s A README A hello.php $
โครงการใหม่เพิ่มไฟล์ทั้งหมดในการร่วมกันเราสามารถใช้Git add. คำสั่งที่จะเพิ่มไฟล์ทั้งหมดในโครงการปัจจุบัน
ตอนนี้เราปรับเปลี่ยนแฟ้ม Readme:
$ vim README <pre> <p>在 README 添加以下内容:<b># w3big Git 测试</b>,然后保存退出。</p> <p>再执行一下 git status:</p> $ git status -s AM README A hello.php
"AM" หมายความว่าไฟล์หลังจากที่เราเพิ่มไปยังแคชมีการเปลี่ยนแปลง หลังจากการเปลี่ยนแปลงที่เราดำเนินการคอมไพล์เพิ่มคำสั่งที่จะเพิ่มไปยังแคช:
$ git add . $ git status -s A README A hello.php
เมื่อคุณต้องการการเปลี่ยนแปลงของคุณที่มีอยู่ในภาพรวมรายงานเตรียมพร้อมในเวลาที่เราต้องดำเนินการคอมไพล์เพิ่ม
สถานะ Git
สถานะ Git ที่จะเห็นคุณหลังจากที่ครั้งสุดท้ายหากมีการเปลี่ยนแปลง
ผมแสดงให้เห็นถึงคำสั่งนี้เมื่อเติม -s พารามิเตอร์ที่จะได้รับผลสั้น ๆ หากคุณไม่ได้เพิ่มพารามิเตอร์นี้จะมีรายละเอียดการส่งออก:
$ git status On branch master Initial commit Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: README new file: hello.php
ต่าง Git
สถานะ Git Git diff บริหารเพื่อดูรายละเอียดของผลการดำเนินการที่
คอมไพล์คำสั่งต่างและแสดงแคชเขียนได้รับการแก้ไข แต่ยังไม่ได้เขียนไปยังแคชของการเปลี่ยนแปลงที่แตกต่าง Git Diff มีสองสถานการณ์หลัก
- การเปลี่ยนแปลงไม่ได้เก็บไว้: diff Git
- ดูการเปลี่ยนแปลงที่เก็บไว้: Git diff --cached
- ดูแคชและ uncachedการเปลี่ยนแปลงทั้งหมด: Git diff HEAD
- แสดงสรุปมากกว่าdiff ทั้งหมด: Git diff --stat
ใส่ต่อไปในแฟ้ม hello.php นี้:
<?php echo '本教程:www.w3big.com'; ?>
$ git status -s A README AM hello.php $ git diff diff --git a/hello.php b/hello.php index e69de29..69b5711 100644 --- a/hello.php +++ b/hello.php @@ -0,0 +1,3 @@ +<?php +echo '本教程:www.w3big.com'; +?>
แสดงสถานะ Git ในครั้งสุดท้ายของคุณมุ่งมั่นที่จะเปลี่ยนแปลงหลังจากการปรับปรุงหรือเขียนเส้นเปลี่ยนแปลงแคชโดยสายและ Git diff แสดงเฉพาะสิ่งที่เปลี่ยนแปลงเหล่านั้น
ต่อไปเรามาดู Git ต่อไปดำเนินการต่าง --cached ผลการ:
$ git add hello.php $ git status -s A README A hello.php $ git diff --cached diff --git a/README b/README new file mode 100644 index 0000000..8f87495 --- /dev/null +++ b/README @@ -0,0 +1 @@ +# w3big Git 测试 diff --git a/hello.php b/hello.php new file mode 100644 index 0000000..69b5711 --- /dev/null +++ b/hello.php @@ -0,0 +1,3 @@ +<?php +echo '本教程:www.w3big.com'; +?>
Git กระทำ
ใช้ Git เพิ่มคำสั่งที่คุณต้องการเขียนเนื้อหาของบัฟเฟอร์ภาพรวมและดำเนินการ Git กระทำจะเพิ่มเนื้อหาไปยังคลังสินค้าบัฟเฟอร์
คอมไพล์ที่คุณส่งแต่ละบันทึกชื่อและที่อยู่อีเมลของคุณเพื่อให้ขั้นตอนแรกคุณต้องกำหนดชื่อผู้ใช้และ E-mail Address
$ git config --global user.name 'w3big' $ git config --global user.email [email protected]
ต่อไปเราเขียนแคชและส่งการเปลี่ยนแปลงทั้งหมด hello.php ในตัวอย่างแรกเราจะใช้ตัวเลือก -m เพื่อให้บรรทัดคำสั่งเพื่อส่งความคิดเห็น
$ git add hello.php $ git status -s A README A hello.php $ $ git commit -m '第一次版本提交' [master (root-commit) d32cf1f] 第一次版本提交 2 files changed, 4 insertions(+) create mode 100644 README create mode 100644 hello.php
ภาพรวมตอนนี้เราได้รับการบันทึก ถ้าเราดำเนินการสถานะ Git:
$ git status # On branch master nothing to commit (working directory clean)
การส่งออกดังกล่าวข้างต้นแสดงให้เห็นว่าเราหลังจากส่งที่ผ่านมาไม่ได้ทำการเปลี่ยนแปลงใด ๆ คือ "ไดเรกทอรีการทำงานสะอาด. ไดเรกทอรีที่ทำงานสะอาด"
หากคุณไม่ได้ตั้งค่าตัวเลือก -m, Git พยายามที่จะเปิดเป็นบรรณาธิการให้คุณกรอกข้อมูลที่ส่ง Git ถ้าคุณไม่สามารถหาข้อมูลที่เกี่ยวข้องในการกำหนดค่าเริ่มต้นจะเปิดเป็นกลุ่ม หน้าจอจะมีลักษณะเช่นนี้
# Please enter the commit message for your changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # modified: hello.php # ~ ~ ".git/COMMIT_EDITMSG" 9L, 257C
หากคุณคิดว่า Git เพิ่มกระบวนการแคชส่งยุ่งยากเกินไป Git ยังช่วยให้คุณใช้ตัวเลือก -a ข้ามขั้นตอนนี้ รูปแบบคำสั่งดังต่อไปนี้:
git commit -a
ลองปรับเปลี่ยนแฟ้ม hello.php ดังต่อไปนี้:
<?php echo '本教程:www.w3big.com'; echo '本教程:www.w3big.com'; ?>
แล้วรันคำสั่งต่อไปนี้:
git commit -am '修改 hello.php 文件' [master 71ee2cb] 修改 hello.php 文件 1 file changed, 1 insertion(+)
HEAD รีเซ็ต Git
Git ตั้งค่าคำสั่งหัวเพื่อลบเนื้อหาที่เก็บไว้
ลองเปลี่ยนไฟล์ README ไฟล์ดังต่อไปนี้:
# w3big Git 测试 # 本教程
ไฟล์ hello.php แก้ไขเพิ่มเติมดังต่อไปนี้:
<?php echo '本教程:www.w3big.com'; echo '本教程:www.w3big.com'; echo '本教程:www.w3big.com'; ?>
ตอนนี้หลังจากที่สองการแก้ไขไฟล์ถูกส่งไปยังพื้นที่กันชนตอนนี้เราต้องการที่จะยกเลิกการอย่างใดอย่างหนึ่งของแคชดังนี้
$ git status -s M README M hello.php $ git add . $ git status -s M README M hello.pp $ git reset HEAD -- hello.php Unstaged changes after reset: M hello.php $ git status -s M README M hello.php
ตอนนี้คุณทำงาน Git กระทำไฟล์ README การเปลี่ยนแปลงที่จะได้รับการส่ง แต่ hello.php ไม่
$ git commit -m '修改' [master f50cfda] 修改 1 file changed, 1 insertion(+) $ git status -s M hello.php
คุณสามารถดูไฟล์การเปลี่ยนแปลง hello.php และสำหรับการส่ง
แล้วเราสามารถใช้คำสั่งต่อไปนี้เพื่อแก้ไข hello.php ส่ง:
$ git commit -am '修改 hello.php 文件' [master 760f74d] 修改 hello.php 文件 1 file changed, 1 insertion(+) $ git status On branch master nothing to commit, working directory clean
ในระยะสั้นทำ Git HEAD รีเซ็ตยกเลิกก่อน Git เพิ่มเพื่อเพิ่ม แต่ไม่ต้องการที่จะรวมไว้ในแคชภาพรวมในครั้งต่อไปกระทำ
RM Git
รายการ Git RM จะถูกลบออกจากแคช Git รีเซ็ต Head แห่งนี้ยกเลิกรายการแคชจะแตกต่างกัน "ยกเลิกแคช" ซึ่งหมายความว่าการกู้คืนจะทำให้เกิดการเปลี่ยนแปลงไปยังแคชวิธีการของเราก่อนหน้านี้แฟ้ม RM Git จะถูกลบออกจากไฟล์แคชและฮาร์ดไดรฟ์ของคุณ (ไดเรกทอรีการทำงาน)
หากคุณต้องการที่จะเก็บไฟล์ในไดเรกทอรีการทำงานคุณสามารถใช้RM Git --cached:
ในฐานะที่เราลบไฟล์ hello.php:
$ git rm hello.php rm 'hello.php' $ ls README
จะไม่ลบไฟล์จากพื้นที่ทำงาน:
$ git rm --cached README rm 'README' $ ls README
Git MV
คอมไพล์คำสั่ง MV ที่จะทำทุกสิ่งที่git rm คำสั่งการดำเนิน --cachedเปลี่ยนชื่อไฟล์บนดิสก์และจากนั้นดำเนินการคอมไพล์เพิ่มเพื่อเพิ่มไฟล์ใหม่ไปยังแคช
README ครั้งแรกที่เราเอาเพียงแค่เพิ่มกลับ:
$ git add README
จากนั้นชื่อเดียวกันของ:
$ git mv README README.md $ ls README.md