主頁 >  其他 > Git常用操作(Gitlab)

Git常用操作(Gitlab)

2022-05-14 07:03:25 其他

目錄
  • 一、git概述
  • 二、Git 與 SVN 區別
  • 三、Git下載安裝
  • 四、Git 作業流程
  • 五、Git 作業區、暫存區和版本庫
  • 六、Git 創建倉庫
    • 配置
      • 1、查看配置
      • 2、編輯 git 組態檔
      • 3、設定提交代碼時的用戶資訊
  • 七、Git 基本操作
    • 1)不同區說明
    • 2)一個簡單的操作步驟
    • 3)創建倉庫命令
    • 4)提交與修改操作
      • 1、git add
      • 2、git status
      • 3、git diff
      • 4、git commit
      • 5、git reset
      • 6、git rm
      • 7、git mv
    • 5)查看提交日志
    • 6)遠程操作
      • 1、git remote
      • 2、git push
        • 1)生成Token
        • 2)設定token
        • 3)配置github的ssh密鑰--Windows(推薦)
      • 3、git pull
      • 4、git pull和git fetch的區別
    • 7)Git 分支管理
      • 1、創建分支
      • 2、創建并切換分支
      • 3、合并分支
      • 5、撤銷修改
      • 6、版本回退
        • 1)回退到上個版本
        • 2)回退到前n次版本
        • 3)回滾指定commit id版本(常用/推薦)
      • 7、版本沖突解決
  • 八、打標簽(tag)
    • 1)創建標簽
    • 2)洗掉標簽
    • 3)查看此版本所修改的內容
    • 4)推送標簽到遠程倉庫
    • 5)洗掉遠程標簽
  • 九、搭建私有倉庫(gitlab)
    • 1)配置yum源
    • 2)更新本地yum快取
    • 3)安裝GitLab社區版
    • 4)啟動所有 gitlab 組件
    • 5)gitlab修改默認埠
      • 1、修改puma埠
      • 2、修改nginx埠
      • 3、修改giltab-shell配置
    • 6)訪問驗證
    • 7)Gitlab各組件啟動停止命令
      • 1、GitLab(所有服務)
      • 2、Nginx
      • 3、Puma
      • 4、Sidekiq
      • 5、PostgreSQL
      • 6、Redis
    • 8)簡單使用
      • 1、新建專案
      • 2、生成并配置秘鑰ssh密鑰--Windows(推薦)
        • 1)打開Git Bash查看電腦上是否已經存在SSH密鑰
        • 2) 創建新的ssh key
        • 3)gitlab配置ssh key
      • 3、git配置

一、git概述

Git 是一個開源的分布式版本控制系統,用于敏捷高效地處理任何或小或大的專案,

  • Git 是 Linus Torvalds 為了幫助管理 Linux 內核開發而開發的一個開放原始碼的版本控制軟體,

  • Git 與常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本庫的方式,不必服務器端軟體支持,

二、Git 與 SVN 區別

Git SVN
資料分布方式 分布式 集中式
存盤方式 按元資料存,所有的資源控制系統都是把檔案的元資訊隱藏在一個類似 .svn、.cvs 等的檔案夾里 按檔案存盤
版本號 Git 沒有一個全域的版本號 SVN 有全域版本號:目前為止這是跟 SVN 相比 Git 缺少的最大的一個特征,
內容完整性 Git 的內容完整性要優于 SVN,Git 的內容存盤使用的是 SHA-1 哈希演算法, ~

三、Git下載安裝

在使用Git前我們需要先安裝 Git,Git 目前支持 Linux/UnixMacWindows 平臺上運行,

Git 各平臺安裝包下載地址為:http://git-scm.com/downloads


接下來就是傻瓜式的一步步操作,很簡單,就不在這里講了,

四、Git 作業流程

一般作業流程如下:

  • 克隆 Git 資源作為作業目錄,
  • 在克隆的資源上添加或修改檔案,
  • 如果其他人修改了,你可以更新資源,
  • 在提交前查看修改,
  • 提交修改,
  • 在修改完成后,如果發現錯誤,可以撤回提交并再次修改并提交,

下圖展示了 Git 的作業流程:

五、Git 作業區、暫存區和版本庫

我們先來理解下 Git 作業區、暫存區和版本庫概念:

  • 作業區:就是你在電腦里能看到的目錄,
  • 暫存區:英文叫 stage 或 index,一般存放在 .git 目錄下的 index 檔案(.git/index)中,所以我們把暫存區有時也叫作索引(index),
  • 版本庫:作業區有一個隱藏目錄 .git,這個不算作業區,而是 Git 的版本庫,

下面這個圖展示了作業區、版本庫中的暫存區和版本庫之間的關系:

六、Git 創建倉庫

Git 使用 git init 命令來初始化一個 Git 倉庫, git init 是使用 Git 的第一個命令,在執行完成 git init 命令后,Git 倉庫會生成一個 .git 目錄,該目錄包含了資源的所有元資料,其他的專案目錄保持不變,

# 該命令執行完后會在當前目錄生成一個 .git 目錄,
$ git init

# 使用我們指定目錄作為Git倉庫,
$ git init test2022

配置

1、查看配置

# 查看配置
$ git config --list

2、編輯 git 組態檔

# .git目錄下執行修改當前倉庫
$ git config -e

# 針對系統上所有倉庫
$ git config -e --global

3、設定提交代碼時的用戶資訊

$ git config --global user.name "bigdata"
$ git config --global user.email [email protected]

七、Git 基本操作

Git 常用的是以下 6 個命令:git clonegit pushgit addgit commitgit checkoutgit pull,后面我們會詳細介紹,

1)不同區說明

  • workspace:作業區
  • staging area:暫存區/快取區
  • local repository:版本庫或本地倉庫
  • remote repository:遠程倉庫

2)一個簡單的操作步驟

  • git init - 初始化倉庫,
  • git add . - 添加檔案到暫存區,
  • git commit - 將暫存區內容添加到倉庫中,

3)創建倉庫命令

上面說過git init是初始化創建倉庫,還有一個非常常用的,就是git clone拷貝一份遠程倉庫,也就是下載一個專案,

4)提交與修改操作

命令 說明
git add 添加檔案到暫存區
git status 查看倉庫當前的狀態,顯示有變更的檔案,
git diff 比較檔案的不同,即暫存區和作業區的差異,
git commit 提交暫存區到本地倉庫,
git reset 回退版本,
git rm 洗掉作業區檔案,
git mv 移動或重命名作業區檔案,

1、git add

添加當前目錄下的所有檔案到暫存區:

$ touch HEAD
$ vi HEAD
hello world!!!
$ git status
$ git add .
$ touch hello.java
$ git status -s
$ git add hello.java

2、git status

查看倉庫當前的狀態,顯示有變更的檔案,git status -sgit status --short 命令以精簡的方式顯示檔案狀態,

  • 新添加的未跟蹤檔案前面有 ?? 標記,

  • 新添加到暫存區中的檔案前面有 A 標記,

  • 修改過的檔案前面有M標記,

  • M 有兩個可以出現的位置,出現在右邊的 M 表示該檔案被修改了但是還沒放入暫存區,出現在靠左邊的 M 表示該檔案被修改了并放入了暫存區

  •   A: 你本地新增的檔案(服務器上沒有).
    

其它不常用的檔案狀態

  • C: 檔案的一個新拷貝.

  • D: 你本地洗掉的檔案(服務器上還在).

  • R: 檔案名被修改了,

  • T: 檔案的型別被修改了,

  • U: 檔案沒有被合并(你需要完成合并才能進行提交),

  • X: 未知狀態(很可能是遇到git的bug了,你可以向git提交bug report)

  • :未被git進行管理,可以使用git add file1把file1添加進git能被git所進行管理

3、git diff

  • workspace:作業區
  • staging area:暫存區/快取區
  • local repository:版本庫或本地倉庫
  • remote repository:遠程倉庫

git diff 有兩個主要的應用場景:

  • 【場景一】git diff 命令比較檔案的不同,即比較檔案在暫存區作業區的差異,
  • 【場景二】git diff 命令顯示已寫入暫存區和已經被修改但尚未寫入暫存區檔案的區別,

尚未快取的改動:git diff
查看已快取的改動: git diff --cached
查看已快取的與未快取的所有改動:git diff HEAD
顯示摘要而非整個 diff:git diff --stat

workspace:作業區檔案 與 staging area:暫存區/快取區檔案 對比

$ git status -s
# 所以檔案
$ git diff
# 指定檔案對比
$ git diff hello.java

git diff --cached

staging area:暫存區/快取區檔案 與 local repository:版本庫或本地倉庫檔案對比

$ git add HEAD
$ git diff --cached

4、git commit

git commit 命令將暫存區內容添加到本地倉庫中,

# 所有檔案
$ git commit -m "message"
# 指定檔案
$ git commit hello.java HEAD -m "message"
# -a 引數設定修改檔案后不需要執行 git add 命令,直接來提交
$ echo "test001" > test001
$ echo "test002" > test002
$ git commit -am "messages"

5、git reset

--mixed 為默認,可以不用帶該引數,用于重置暫存區的檔案與上一次的提交(commit)保持一致,作業區檔案內容保持不變,

$ git reset HEAD^            # 回退所有內容到上一個版本  
$ git reset HEAD^ hello.php  # 回退 hello.php 檔案的版本到上一個版本
$ git log --oneline			# 查看提交的版本
$ git  reset 49c5826           # 回退到指定版本
$ git status				# 查看檔案狀態

6、git rm

將檔案從暫存區作業區中洗掉:git rm <file>

$ git rm hello.java
# 強行從暫存區和作業區中洗掉
$ git rm -f hello.java
# 例從暫存區中洗掉檔案
$ git rm --cached hello.java
# 可以遞回強制洗掉
$ git rm -rf --cached dir

7、git mv

git mv 命令用于移動或重命名一個檔案、目錄或軟連接,

git mv [file] [newfile]

如果新檔案名已經存在,但還是要重命名它,可以使用 -f 引數:
git mv -f [file] [newfile]

$ touch t2022
$ git add t2022
$ git mv t2022 t2023
# 如果t2023存在,-f
$ git mv -f t2022 t2023
$ git status

5)查看提交日志

$ git log
# 一行顯示
$ git log --oneline
# 帶引數--author
$ git log --oneline --author="liugp"
# 帶事件,包含--until,不包含--since,如果兩個時間一樣就包含
$ git log --since="2022.03.05" --until="2022.03.06"

6)遠程操作

1、git remote

$ git remote -v
$ git clone git://github.com/flutter/flutter.git
$ cd flutter
$ git remote -v

顯示某個遠程倉庫的資訊:

# 下載
$ git clone [email protected]:apache/flink.git
# 進入到專案
$ cd flink
# 只顯示名稱
$ git remote show
# 顯示具體資訊
$ git remote -v

添加新的遠程倉庫

  • 新建倉庫(GitHub)


$ git remote add GithubTest2022 https://github.com/liugp1116/Test2022.git
$ git remote -v

2、git push

添加遠程倉庫的意義就是將檔案推送到遠程倉庫保存管理【本地倉庫(local repository)-》遠程倉庫(remote repository)

# origin遠程倉庫別名,master當前倉庫分支名,會出現需要輸入賬號密碼
$ git push GithubTest2022 master

輸入自己GitHub的賬號(當然也可以是gitee、gitlab或者其它,下面也會講)

輸入GitHub的密碼

賬號密碼的這種方式在GitHub上在2021年已經被廢除了,必須使用`個人訪問令牌(personal access token) 的方式進行訪問,配置方式如下:

1)生成Token
  1. 在個人設定頁面,找到Setting

  2. 選擇開發者設定Developer setting

  3. 選擇個人訪問令牌Personal access tokens,然后選中生成令牌Generate new token

  4. 設定token的有效期,訪問權限等

  5. 生成令牌Generate token

【溫馨提示】記得把你的token保存下來,因為你再次重繪網頁的時候,你已經沒有辦法看到它了,

2)設定token
// <your_token>:包括<>在內的全部字符替換成你的token
// <USERNAME>:包括<>在內的全部字符替換成你的username
// <REPO>:包括<>在內的全部字符替換成你要訪問的倉庫名稱
git remote set-url origin  https://<your_token>@github.com/<USERNAME>/<REPO>.git
git push GithubTest2022 master
3)配置github的ssh密鑰--Windows(推薦)
  1. 打開Git Bash查看電腦上是否已經存在SSH密鑰
$ cd ~/.ssh/
  1. 創建新的ssh key
$ ssh-keygen -t rsa -C "[email protected]" 

因為之前就創建過,所以我這邊是覆寫

  1. 復制ssh key到github
$ cat id_rsa.pub


  1. 測驗 ssh 鏈接 github
$ ssh -T [email protected]

  1. 設定自己的git資訊
#(此處name可修改也不是用于登錄github的登錄名)
$ git config --global user.name "Firstname Lastname"
$ git config --global user.email "[email protected]"

  1. 測驗驗證
$ git remote add ssh_test2022 [email protected]:liugp1116/Test2022.git
$ git remote -v
# 如果遠程倉庫沒有這個分支,會自動創建master分支,跟本地分支名稱一致
$ git push ssh_test2022 master
### git push <遠程主機名> <本地分支名>:<遠程分支名>
$ git push ssh_test2022 master:dev

查看所有分支,紅色代表遠程分支,綠色代表本地分支

  1. -u引數
# 加了引數-u后,以后即可直接用git push 代替git push origin master
$ git push -u ssh_test2022 master
# 就此關聯起來了,不用再輸入那么長的命令了
$ git push

  1. 強制推送(--force)
$ git push --force origin master
  1. 洗掉遠程分支
### 洗掉主機的分支可以使用 --delete 引數,以下命令表示洗掉 origin 主機的 master 分支:
$ git push origin --delete master

3、git pull

### git pull <遠程主機名> <本地分支名>:<遠程分支名>
$ git pull ssh_test2022 master:dev
# 下面三個等價
$ git pull ssh_test2022 master:master
$ git pull ssh_test2022 master
$ git pull

4、git pull和git fetch的區別

  • git fetch是將遠程主機的最新內容拉到本地,用戶在檢查了以后決定是否合并到作業本機分支中,
  • git pull 則是將遠程主機的最新內容拉下來后直接合并,即:git pull = git fetch + git merge,這樣可能會產生沖突,需要手動解決,
$ git fetch ssh_test2022 master

取回更新后,會回傳一個FETCH_HEAD,指的是某個branch在服務器上的最新狀態,我們可以在本地通過它查看剛取回的更新資訊:

$ git log -p FETCH_HEAD

合并分支

$ git merge FETCH_HEAD

7)Git 分支管理

幾乎每一種版本控制系統都以某種形式支持分支,使用分支意味著你可以從開發主線上分離開來,然后在不影響主線的同時繼續作業,

1、創建分支

$ git branch dev
# 查看本地分支
$ git branch
# 查看遠程分支
$ git branch -r
# 查看所有分支
$ git branch -a

2、創建并切換分支

$ git checkout -b test
### 等價于下面兩句
$ git branch test
$ git checkout test

3、合并分支

一旦某分支有了獨立內容,你終究會希望將它合并回到你的主分支, 你可以使用以下命令將任何分支合并到當前分支中去:

$ git checkout master
# 將dev合并到當前分支(master)
$ git merge dev

5、撤銷修改

  • 本地修改沒add添加到暫存區
# 撤銷指定檔案
$ git checkout t1
# 撤銷多檔案,以空格分開
$ git checkout 123.txt t1
# 撤銷所有,很少用,不推薦
$ git checkout .

【溫馨提示】checkout不僅有撤銷修改,還能切換分支,上面有講過,

  • 本地修改已經add添加到暫存區,但是沒commit提交到本地倉庫

用git status查看一下,修改只是添加到了暫存區,還沒有提交,這時用命令git reset HEAD 可以把暫存區的修改撤銷掉(unstage),重新放回作業區,然后再用git checkout -- file 丟棄作業區的修改:

# 把修改add添加到暫存區
$ git add 123.txt
# 暫存區與本地倉庫比較
$ git diff --cached
$ git status
# 指定檔案
$ git reset HEAD -- 123.txt
# 指定多個檔案
$ git reset HEAD -- 123.txt test.txt
# 所有檔案
$ git reset HEAD -- .

6、版本回退

在實際作業中,我們會不斷對檔案進行修改,然后不斷提交修改到版本庫里,一旦你把檔案改亂了,或者誤刪了檔案,還可以從最近的一個commit恢復,然后繼續作業,而不是把幾個月的作業成果全部丟失,
在Git中,我們用git log命令查看修改記錄:

查看版本號ID(歷史提交記錄)

$ git log
# 一行顯示
$ git log --oneline
$ git log --pretty=oneline

我們還可以用 --graph 選項,查看歷史中什么時候出現了分支、合并,以下為相同的命令,開啟了拓撲圖選項:

$ git log --graph

1)回退到上個版本
$ git reset --hard HEAD^

2)回退到前n次版本
$ git reset --hard HEAD~3 
3)回滾指定commit id版本(常用/推薦)
# 先查找commit id
$ git log
# 一行顯示
$ git log --oneline
$ git log --pretty=oneline

# 回滾,用完整ID也可以用短ID,ID只要唯一就行,可以任意
$ git reset --hard 1c544f1

7、版本沖突解決

在公司里遠程倉庫都是大家公用的,如果沒有更新最新的版本,各自又修改同一個檔案提交到遠程倉庫就會產生沖突,

【解決】

# 先拉取最新的代碼
$ git pull

看上圖提示發現合并的時候產生沖突,打開檔案發現沖突的檔案有兩段最新代碼,一段是自己本地提交的,一段是從遠程拉取下來的,

修改解決沖突,修改完如下內容:

再add-》commit-》push到遠程倉庫,解決沖突

$ git add 123.txt
$ git commit -m "解決沖突"
$ git push
$ git status

八、打標簽(tag)

1)創建標簽

發布一個版本時,我們通常先在版本庫中打一個標簽(tag),這樣就唯一確定了打標簽時刻的版本,將來無論什么時候,取某個標簽的版本,就是把那個打標簽的時刻的歷史版本取出來,

$ git tag
$ git tag v0312
$ git tag

2)洗掉標簽

$ git tag -d v0312

3)查看此版本所修改的內容

# 查看此版本所修改的內容
$ git show v0312

4)推送標簽到遠程倉庫

 # 推送一個本地標簽到遠程倉庫
$ git push ssh_test2022 v0312
 # 推送全部未推送過的本地標簽
$ git push ssh_test2022 --tags

5)洗掉遠程標簽

# 洗掉一個遠程標簽
$ git push ssh_test2022 :refs/tags/v0312

九、搭建私有倉庫(gitlab)

出于安全和穩定而言,搭建私有本地倉庫是在企業里最常見的,企業里基本上不可能用外網的倉庫作為公司的代碼倉庫,Gitlab官方檔案

圖源:https://docs.gitlab.com/ee/development/architecture.html

  • Nginx:靜態web服務器,
  • gitlab-shell:用于處理Git命令和修改authorized keys串列,
  • gitlab-workhorse: 輕量級的反向代理服務器,
  • logrotate:日志檔案管理工具,
  • postgresql:資料庫,
  • redis:快取資料庫,
  • sidekiq:用于在后臺執行佇列任務(異步執行),
  • Puma:Puma是一個Ruby應用服務器,用于運行核心Rails應用程式,該應用程式在GitLab中提供面向用戶的功能,這通常以捆綁或配置的形式顯示在行程輸出中,ru取決于GitLab版本,

1)配置yum源

https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/

$ cat << EOF > /etc/yum.repos.d/gitlab-ce.repo
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el8$releasever/
gpgcheck=0
enabled=1
EOF

2)更新本地yum快取

$ yum clean all && yum makecache

【Centos8的問題】Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist

【解決】

cd /etc/yum.repos.d/
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
yum update -y

3)安裝GitLab社區版

$ yum install gitlab-ce -y

4)啟動所有 gitlab 組件

# 啟動所有服務,使組態檔生效,但是會初始化除了gitlab.rb之外的所有檔案
# 組態檔/etc/gitlab/gitlab.rb
$ gitlab-ctl reconfigure
$ gitlab-ctl status
# 檢查gitlab
$ gitlab-rake gitlab:check SANITIZE=true --trace

其它常用命令

 # 停止所有 gitlab 組件;
$ gitlab-ctl stop
# 重啟所有 gitlab 組件;
$ gitlab-ctl restart 
#查看日志的命令(Gitlab 默認的日志檔案存放在/var/log/gitlab 目錄下)
$ gitlab-ctl tail # 查看日志;

WEB UI
賬號:root
密碼在這個檔案中:/etc/gitlab/initial_root_password
web ui默認埠:http://192.168.0.113:80

5)gitlab修改默認埠

最有可能被其它行程占用的埠就是8080和80埠了

1、修改puma埠

組態檔:/etc/gitlab/gitlab.rb,修改puma['port']8080-》8082

puma['port'] = 8083

修改域名

# external_url 'http://gitlab.bigdata.com'
$ sed -i 's/gitlab.example.com/gitlab.bigdata.com/' /etc/gitlab/gitlab.rb

這個記得配置hosts域名映射C:\Windows\System32\drivers\etc\hosts

192.168.0.113 gitlab.bigdata.com

重啟服務

$ gitlab-ctl reconfigure


2、修改nginx埠

組態檔:/var/opt/gitlab/nginx/conf/gitlab-http.conf,修改listen修改*80-》*8088

重新加載配置

$ netstat -tnlp|grep :80
$ netstat -tnlp|grep :8088
# 重啟服務,不能使用gitlab-ctl reconfigure,要不然會重置配置回80
$ gitlab-ctl restart
$ netstat -tnlp|grep :8088

web訪問:http://192.168.0.113:8088/

3、修改giltab-shell配置

上面nginx埠改了,giltab-shell配置也必須跟著改,要不然提交會報錯,組態檔:/var/opt/gitlab/gitlab-shell/config.yml,修改如下:

gitlab_url: "http://127.0.0.1:8088"

重啟服務

$ gitlab-ctl restart

6)訪問驗證

http://192.168.0.113:8088

7)Gitlab各組件啟動停止命令

其實上面的restart都是重啟所有服務,很麻煩,一般在公司都是重啟指定服務,

1、GitLab(所有服務)

$ gitlab-ctl start 
$ gitlab-ctl stop 
$ gitlab-ctl restart 
$ gitlab-ctl status 
$ gitlab-ctl reconfigure

2、Nginx

$ gitlab-ctl start nginx
$ gitlab-ctl stop nginx
$ gitlab-ctl restart nginx
$ gitlab-ctl status nginx

3、Puma

$ gitlab-ctl start puma
$ gitlab-ctl stop puma
$ gitlab-ctl restart puma
$ gitlab-ctl status puma

4、Sidekiq

$ gitlab-ctl start sidekiq
$ gitlab-ctl stop sidekiq
$ gitlab-ctl restart sidekiq
$ gitlab-ctl status sidekiq

5、PostgreSQL

$ gitlab-ctl start postgresql 
$ gitlab-ctl stop postgresql 
$ gitlab-ctl restart postgresql 
$ gitlab-ctl status postgresql 

6、Redis

$ gitlab-ctl start redis
$ gitlab-ctl stop redis
$ gitlab-ctl restart redis
$ gitlab-ctl status redis

8)簡單使用

1、新建專案


2、生成并配置秘鑰ssh密鑰--Windows(推薦)

1)打開Git Bash查看電腦上是否已經存在SSH密鑰
$ cd ~/.ssh/
2) 創建新的ssh key
$ ssh-keygen -t rsa -C "[email protected]" 
3)gitlab配置ssh key

先復制~/.ssh/id_rsa.pub內容

在再gitlab上添加

3、git配置

$ git remote add gitlab_test2022 [email protected]:root/test2022.git
$ git remote -v
# 將本地倉庫的檔案push到gitlab
$ git push gitlab_test2022 master


【溫馨提示】gitlab的安裝和簡單操作使用就先到這了,基本上公司不會讓自己親自去搭建這玩意,所以只要會使用git基本操作就行了,不用去糾結其中的原理,如果想了解更多,請參考Gitlab官方檔案,

希望這篇文章對小伙伴有所幫助~

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/473461.html

標籤:其他

上一篇:leveldb實作之寫入流程

下一篇:常用的函式式介面之Function介面

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more