溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Git入門教程

發(fā)布時間:2020-07-03 06:02:42 來源:網(wǎng)絡(luò) 閱讀:3327 作者:Richard2019 欄目:軟件技術(shù)

Git 是一個開源的分布式版本控制系統(tǒng),目前市面上流行的GitHub,GitLab,Gerrit等版本控制系統(tǒng)的核心都是通過Git去管理代碼的。下面介紹一些常用的git命令。

1、 git clone remote_git_url local_directory
此命令會將遠程git庫clone到local_directory下。如果不指定local_directory,會以遠程倉庫名作為本地存儲的文件夾名
2、 git init 和 git init --bare
git init :在當前文件夾,新建一個git庫,文件夾下會生成一個.git的文件夾,當前文件夾相當于工作區(qū),可以執(zhí)行g(shù)it add, git commit, git branch等操作,如果本地文件夾已經(jīng)存放了需要進行管理的代碼,使用git init是比較合適的,可以繼續(xù)在此文件夾進行相應的開發(fā)工作。
git init –bare:在當前文件夾初始化一個裸庫,只用來存放版本信息,不存在工作區(qū),無法執(zhí)行g(shù)it add等操作,適合作為初始庫,用以分享代碼給其他人。
3、 git status
此命令用來總覽本地代碼的改動,以及當前代碼庫的狀態(tài)
Git入門教程
如上圖所示,執(zhí)行g(shù)it status 之后會將當前工作區(qū)的代碼與本地代碼庫中的最新的代碼做比較,給出相關(guān)改動的狀態(tài)
Deleted: 表示文件test在工作區(qū)中被刪除了
Modified:表示文件test2有改動
Untracked files: 表示文件test3還沒有被加入到代碼庫中進行追蹤管理

Git在給出工作區(qū)的狀態(tài)后還會同時給出進一步處理所需要用到的相關(guān)命令,例如上圖中顯示的git add/rm , git checkout -- <file>。

4、 git add
此命令用來將工作區(qū)的改動加入到暫存區(qū)。比如新增的文件,改動后的文件等,刪除的文件等,使用方法是git add filename1 filename2 ,如果想把本地的改動全部加入到暫存區(qū),可以使用git add .
我們對上圖中的git庫執(zhí)行g(shù)it add .之后再執(zhí)行g(shù)it status 可以得到將改動加入到暫存區(qū)之后的工作區(qū)狀態(tài)
Git入門教程

5、 git rm
此命令用來將工作區(qū)的文件直接刪除,并提交到暫存區(qū)。相當于先執(zhí)行rm filename 在執(zhí)行g(shù)it add filename。
6、 git config
在我們將工作區(qū)的改動加到暫存區(qū)之后,下一步動作將改動提交到代碼庫里,在第一次執(zhí)行提交之前我們需要先配置下我們的提交用戶信息。
git config user.name Richard
git config user.email Richard@qq.com

user.name是提交日志里顯示的用戶名,user.email是提交日志里顯示的用戶郵件
這個命令只是給當前代碼庫配置提交信息。如果想給自己賬戶下所有的git庫都配置提交信息,需要使用git config –global user.name 和 git config –global user.email
除了配置提交時的用戶信息外,還可以配置編輯提交信息時所使用的的編輯器,命令如下:git config –global core.editor vim
即可使用vim來替代系統(tǒng)默認的編輯器。
7、 git commit
在配置好用戶信息后我們可以使用git commit 命令來將已經(jīng)加入到暫存區(qū)的改動提交到代碼庫里面。如下圖所示,輸入git commit之后會打開一個編輯器,你可以輸入任何想輸入的內(nèi)容。如果提交信息較短,也可以直接使用git commit –m “ delete test, modify..”,直接進行提交
Git入門教程
有時在我們提交之后,可能會發(fā)現(xiàn)漏加了一筆改動,然后我們又不希望分成兩筆提交,這時在我們執(zhí)行g(shù)it add之后,可以執(zhí)行g(shù)it commit –amend 來將兩次改動合并到一筆提交中。
8、 git push
用來將本地倉庫的修改推送到遠程主倉庫。
一般用法 git push origin master 次命令會將本地倉庫master分支最新的提交推送到origin遠程倉庫對應的master分支
9、 git pull
從遠程倉庫獲取更新并和本地分支合并。
默認情況下git pull 會獲取遠程倉庫的改動然后和本地分支進行g(shù)it merge. 如果我們希望執(zhí)行g(shù)it rebase而不是git merge 可以運行 git pull –rebase
10、 git log
查看提交日志
查看最新的5條日志git log -5
查看自某個commit起的日志 git log commit_hash..HEAD
查看某個文件第3行到第10行的改動:git log –L 3,10:filename
查看某個文件某個函數(shù)的改動:git log –L :funcnmae:filename
11、 git show
查看當前HEAD提交的具體改動內(nèi)容
可以接其他提交的commit id查看對應的改動
12、 git diff
查看當前工作區(qū)相對于庫中最新的代碼所做的改動,只能查看未經(jīng)暫存的改動
如需查看已暫存的和庫中的對比的改動需要使用git diff --cached
13、 git branch
查看當前所在分支信息
Git branch –av 查看全部分支信息及最新的commit id
14、 git checkout
切換分支,或者還原工作區(qū)文件
git checkout –b new_branch 新建一個new_branch分支
15、 git format-patch
用于生成patch文件。
基于某次提交生成patch, git format-patch base_commit_id
生成的patch,名字一般為0001-.patch,0002.patch
16、 git am
將git format-patch生成的一系列的patch文件打到git庫中
17、 git apply
將某一patch打到git庫中,與git am的區(qū)別是am會將原始的提交信息也合入,apply只會將改動內(nèi)容合入到工作區(qū),不會自動入庫
18、 git reset
回退到某個commit.
Git reset –hard commit_id, 將工作區(qū)和代碼庫都回退到指定的commit
Git reset –soft commit_id,將代碼庫回退到指定的commit,并將改動存放到暫存區(qū)。
19、 git merge, git rebase
都是用來合并分支。區(qū)別在于git merge是直接合并,git rebase是先將本地提交暫存,然后將HEAD更新到最新,在把本地提交合入。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

git
AI