git一天學(xué)習(xí)總結(jié)

遠程倉庫克隆

在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é)果如下

image.png

  • demo1.py狀態(tài)為A,表示為已經(jīng)添加到工程區(qū)
  • gitignore狀態(tài)為??,表示位置操作,因此可以使用命令git add .gitignore將其添加
    image.png

工作區(qū)文件更新

更新demo1.py文件內(nèi)容后,查看文件的狀態(tài)


image.png
  • demo1.py狀態(tài)變?yōu)锳M,A表示為添加的新文件,M表示為已更新

工作區(qū)文件刪除

刪除git文件,因使用 git rm -f file

image.png

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命令提交到版本庫


image.png
  • 使用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

參考資料:

https://www.runoob.com/git/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容