遠程倉庫克隆
在github或者公司內(nèi)網(wǎng)的git新建一個遠程倉庫,然后使用clone命令克隆空的工程到本地工作區(qū)
jc@jc:~/Desktop/技術(shù)棧/git$ git clone git@github.com:xxxx/gitdemo.git
Cloning into 'gitdemo'...
warning: You appear to have cloned an empty repository.
如上述代碼,已經(jīng)成功從遠程倉庫克隆了一個空的工程到本地
git工作區(qū)操作
git工作區(qū)可以理解為本地目錄所展示的內(nèi)容,即實際編碼區(qū)域。
git工作區(qū)查看
接上一節(jié)從遠端克隆一個空的工程,查看其目錄結(jié)果
jc@jc:~/Desktop/技術(shù)棧/git/gitdemo$ ls -a
. .. .git .idea
jc@jc:~/Desktop/技術(shù)棧/git/gitdemo$ cd .git
jc@jc:~/Desktop/技術(shù)棧/git/gitdemo/.git$ ls -a
. HEAD config hooks objects
.. branches description info refs
- .git:隱藏文件,git的所有配置文件存放在此,包括配置文件(cofig),branches(分支信息)等
- .idea:python的pycharm工程配置文件
.gitignore文件配置
git使用過程中,部分文件不希望被git識別為改動,因此可以使用.gitignore進行配置,git內(nèi)部會進行識別,使得忽略指定的文件
官方文檔:
https://github.com/github/gitignore/blob/master/Python.gitignore
根據(jù)不同的工程,gitignore提供不同模版文件,本文為python腳本,在官網(wǎng)下載Python.gitignore,使用過程中需要以下幾點:
- 文件修改為.gitignore
- .gitignore存在root根目錄下,即與
.git平級
jc@jc:~/Desktop/技術(shù)棧/git/gitdemo$ ls -a
. .. .git .gitignore .idea
- 直接編輯.gitignore文件,將忽略的文件名,或者文件夾名加入,如本列中將
.idea/文件下所有的文件忽略
image.png
git文件狀態(tài)查看
git status -s
使用如下命令可以查看工作區(qū)文件的增刪改狀態(tài),后面會配合使用git status -s命令查看不同操作后的文件狀態(tài)
工作區(qū)文件添加
本列在pycharm編譯器下進行操作,新建一個demo1.py文件,git status -s結(jié)果如下

- demo1.py狀態(tài)為A,表示為已經(jīng)添加到工程區(qū)
- gitignore狀態(tài)為??,表示位置操作,因此可以使用命令
git add .gitignore將其添加
image.png
工作區(qū)文件更新
更新demo1.py文件內(nèi)容后,查看文件的狀態(tài)

- demo1.py狀態(tài)變?yōu)锳M,A表示為添加的新文件,M表示為已更新
工作區(qū)文件刪除
刪除git文件,因使用 git rm -f file

git版本庫操作
工作區(qū)編碼完成后,需要將文件進行提交存儲在對應(yīng)的版本庫中。版本庫使用的命令為git commit -am '描述'
如當前的工作區(qū)的文件狀態(tài)如下:
jc@jc:~/Desktop/技術(shù)棧/git/gitdemo$ git status -s
A .gitignore
AM demo1.py
調(diào)用commit命令提交到版本庫

- 使用commit命令提交成功后,會輸出提交的文件和版本號
- 再次調(diào)用stauts命令,緩沖區(qū)沒有差異代碼
git遠端推送操作
將版本存入對應(yīng)的版本庫,下一步就需要提交到遠程。
-
git push 拉去最新代碼后,進行遠端的push
image.png
如上圖,git push成功
git沖突解決
開發(fā)過程中g(shù)it的基本使用操作如下:
1.從遠程倉庫拉去master分支代碼
-
2.本地git一個新的分支如test,分支內(nèi)容為master
git branch: 查看現(xiàn)有分支
git branch test:新建test分支
image.png -
3.切換到test分支
image.png -
4.test分支上進行代碼的修改,并提交
image.png -
5.切換到master分支,并修改demo1.py文件并提交
image.png 6.demo1.py在master和test分支上存在沖突
#master分支
if __name__ == '__main__':
print('jc001')
#test分支
if __name__ == '__main__':
print('jc001')
-
7.在master分支上merge test分支,由于存在沖突,命令行會如下輸出
image.png -
8.沖突解決
如下圖,沖突文件
image.png
HEAD:為當前master的代碼塊
test:為當前test分支的代碼塊
刪除HEAD的代碼,后既可以完成分支的合并
1.手動解決沖突代碼,解決后demo1.py的狀態(tài)為
UU-
2.調(diào)用'git add demo1.py' 或者直接提交代碼完成合并
image.png
常用的git命令
git clone ssh:xxxx : 從遠端倉庫克隆代碼
git init :初始化本地git工程,執(zhí)行后會多出個.git的隱藏文件
git status -s :查看git緩沖區(qū)的文件狀態(tài)
git add filename:添加文件到git緩沖區(qū)
git rm -rf filename:從git緩沖區(qū)輸出文件
git branch test:本地創(chuàng)建新的分支test
git branch :查看本地所有分支
git checkout test:切換到test分支
git checkout xxsddda:代碼檢出xxsdda
git log --oneline --graph:查看git的log信息
git tag -a v1.0 :給git打一個tag









