1. 程式人生 > >git +repo使用技巧

git +repo使用技巧

git

1 git 使用

1.1 git 安裝

~$: sudo apt-get install git

1.2 git 初始化

~$: git init
~$: git remote add origin https://github.com/username/xxxx.git 
~$: git config --global user.name "yourname"
~$: git config --global user.email youremail@example.com

1.3 git 常用命令

    git status        檢視倉庫狀態,顯示上次遞交之後本地的檔案變動以及臨時遞交,注意這裡比較的是同一節點間的變動。
    git diff         尚未快取的改動
    git diff  --cached 檢視已快取的改動
git diff HEAD 檢視已快取的與未快取的所有改動 git log 檢視歷史記錄 git log origin/<branch-name> 檢視遠端分支遞交記錄 git stash 把當前的工作隱藏起來 等以後恢復現場後繼續工作 git stash list 檢視所有被隱藏的檔案列表 git stash apply 恢復被隱藏的檔案,但是內容不刪除 git stash drop 刪除檔案 git stash pop 恢復檔案的同時 也刪除檔案 git remote 檢視遠端庫的資訊 git fetch 更新遠端資料到本地 git merge
合併本地分支 git pull <remote> <localbranch> 同步遠端程式碼到本地 實際上git fetch+git merge=git pull動作 git push origin master Git會把master分支推送到遠端庫對應的遠端分支上 push -u origin master 注意-u引數,表示選擇upstream,一個branch可以對應多個upstream,-u引數是選擇你的預設upstream,以後使用git fetch/git pull/git rebase時就可以不用加引數了,一般是使用在第一次git push時 。官方文件表示參考git config的branch.<name>.merge
的相關內容 git add -A . 所有變更檔案新增到快取區 git commit 將快取區的變更更新到倉庫 git show <commit checksum> 顯示commit校驗和對應的修改 git reset HEAD^ 撤銷至上個遞交記錄 git reset --hard <commit checksum> 撤銷/回退到相應checksum的commit,注意當前程式碼的備份,該操作會覆蓋當前的程式碼 git rm 將檔案從快取區移除

2.git 本地使用流程

    git clone [email protected].com:username/uboot.git //克隆遠端程式碼到本地
    git add -A . //將原生代碼的變更新增到git快取中
    git commit -m "add uboot" //提交變更到本地git
    git push origin master //同步到遠端主機
    在遠端倉庫為空,且本地倉庫有新檔案的情況下可以使用一下方式:
    git init
    git add .
    git commit -m "xxxx"
    git remote add origin [email protected].com:username/uboot.git
    git push -u origin master

3.fork專案相關操作

1.更新自己 Fork 的程式碼專案和原作者的專案進度一致的方法:
    原專案地址:https://github.com/gozfree/libraries.git
    1)將fork到github上的專案clone到本地
        git clone https://github.com/feisonzl/libraries.git
        cd libraries
    2)新增 gozfree 專案的地址,也就是主專案的 remote 地址
        git remote add gozfree https://github.com/gozfree/libraries.git
        git fetch gozfree
        git merge gozfree/master
    3)將原作者的專案跟新到我的github中
        git commit -m '更新到原作者的主分支的進度'
        git push origin

4.git patch生成和使用

    1.git diff方法
    git diff > name.patch  生成patch
    git diff --cached > name.patch
    git diff branch-name --cached > name.patch
    git apply name.patch 應用patch

    2.git format-patch
    git format-patch -M master 生成patch
    git am ***.patch 應用patch

5.git status問題:

當clone到使用者端的檔案被更改許可權後,git status會爆出很多modify
解決方法:更改.git\config檔案中的filemode=true改為false

6.git 使用詳細教程

repo

1.repo常用命令

1.repo init –u URL [OPTIONS] //檢出清單版本庫
    options:
        -u:指定一個URL,其連線到一個maniest倉庫
        -m:在manifest倉庫中選擇一個xml檔案
        -b:選擇一個maniest倉庫中的一個特殊的分支
    例:repo init -u 172.16.16.121:manifest -b msm8909 -m qcom_msm8909.xml 
2.repo sync //同步版本庫
3.repo start  <newbranchname> [--all | <project>…]  //建立並切換分支
4.repo checkout     //切換分支
5.repo branches     //檢視分支
6.repo diff         //檢視工作區檔案差異
7.repo stage        //把檔案新增到index表中
8.repo status       //檢視檔案狀態

2.repo常用操作流程

    repo init -u gitserver:manifests.git -m xxx.xml (xxx.xml檔案決定初始化的專案)
    repo sync 
    repo start xxx --all //建立xxx專案對應的分支 (--all意為將所有模組都歸為當前xxx分支下)
    git add xxx
    git commit -m "xxx"
    repo upload

3.repo切換分支

    cd .repo/manifests
    ls //檢視xxx.xml檔案
    cd .. //回到上級目錄
    ln -s  manifest.xml manifests/QK_CM298_EXER.xml //更換manifest.xml的軟連線
    cd ..
    repo sync //同步程式碼
    repo start xxx--all//建立本地分支

4. 自己踩過的坑

1.部分子目錄中的檔案push後,遠端依然沒有的情況
    最近在使用git push時,發現怎麼push,遠端都無法同步本地子目錄下的檔案,困擾了我兩天時間,最後發現是因為子目錄中也有.git資料夾,因為該目錄是我之前pull的別人的,一直沒注意。這種情況,push是不會同步含有.git資料夾的子目錄的。

相關推薦

git +repo使用技巧

git 1 git 使用 1.1 git 安裝 ~$: sudo apt-get install git 1.2 git 初始化 ~$: git init ~$: git

git 使用技巧

branch init 所有 clean not study blog dev detail 常見命令 git init 將當前文件夾作為一個git 倉庫來使用 git add git add --all git add -A git commit git commit

rsync/git/repo/android source of AOSP

          [email protected]:~/Google$ cat rsync-exclude-from.txt  .repo .git/.gitignore    /out  

RHEL/Android/Git/repo loop

[email protected]:~/Google/android-8.1.0_r33$ cat ~/git_repository/repo-repeat.sh  #!/bin/bash repo sync while [ $? -ne 0 ]  do&nbs

RHEL/Android/Git/repo switch branch in AOSP source

[email protected]:~/Google/android-8.1.0_r33$cd .repo/manifests [email protected]:~/Google/android-8.1.0_r33/.repo/manifests$ git branc

Git 常用技巧

## Git 簡介 Git 是一種程式碼管理方式,用於多人協作開發。Git 有如下特點: - 分佈儲存在多臺電腦上 - 任意兩個開發者之間可以很容易的解決衝突。 - 離線工作 Pro Git(中文版)  返回 碼雲

如何使用 vue-cli 3 的 preset 打造基於 git repo 的前端專案模板

TLDR 背景介紹 vue-cli 3 完全推翻了 vue-cli 2 的整體架構設計,所以當你需要給組裡定製一份基於 vue-cli 的前端專案初始化模板時,就需要去思考:我該怎麼做? 我們要做的事情很簡單,就是當別人使用 vue create xxx 命令初

七個你無法忽視的Git使用技巧

通常,大部分時間我們都只會用到add、commit、branch和push/pull這些命令。大部分人熟悉這套只往一個方向運轉的工作流。你們有沒有想過,如果自己往倉庫中添加了錯誤的檔案,或是將程式碼提交到了錯誤的分支,而且提交資訊還寫錯了的話,自己怎樣才能取消之

repo init出現錯誤fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle解決方法

當執行 repo init -u https://android.googlesource.com/platform/manifest時出現如下錯誤: fatal: Cannot get https://gerrit.googlesource.com/git-rep

git使用技巧 (1)

git主要分3個區:工作區,暫存區,版本庫 工作區:目前工作的資料夾 暫存區:可以把修改的提交到快取區,儲存起來。相當於提交任務的快取。 版本庫:伺服器的檔案 提交:工作區修改後用add命令提交到暫存區,可再在工作區下修改,繼續提交到暫存區,用 commit

git一些技巧

更改提交訊息 假設你已經提交了一堆檔案,並發現輸入的提交資訊實際上並不清晰。現在你要更改提交訊息。為此,你可以使用 git commit --amend: git commit --amend -m “New commit message” 附加提交 假設你要提交六個檔案,

git&repo常見命令以及工作流程

一.Git 1) git是一個快速,開源,分散式的版本控制系統。 2)Git的開發流程: a.與遠端倉庫同步git pull   b.修改檔案 c.檢視變更git status d.載入變更git add<file> e.提交載入變更git commit f.上

git&repo常見問題總結

1, 分別使用GIT  REPO下載10.92.32.10:mtk6572/packages/apps/Mms.git的命令是? repo init -u [email protected]:mtk6572/packages/apps/Mms.git&&a

Git配置技巧】01. 配置檔案git config介紹

   Git有一個工具被稱為git config,它允許你獲得和設定配置變數;這些變數可以控制Git的外觀和操作的各個方面。 一. 配置檔案的儲存位置 這些變數可以被儲存在三個不同的位置: 1./et

git/repo/gerrit 本地環境搭建(一)

一、需求:本地構建git/repo/gerrit 開發環境 二、背景簡介: 1> git:一種分散式版本控制系統(DVCS) 2> repo:google 為便於管理 Android 專案數目眾多的 git repository 而開發的工具,是對git 命令

Git/GitHub技巧

一、基礎相關1.建立版本庫caibindeMacBook-Pro:testgit caibin$ git init Initialized empty Git repository in /Users/caibin/testgit/.git/我們可以看到在testgit檔案下

關於git-repo時manifest.xml的一些整理

 在Android原始碼的下載和應用程式程式設計中,manifest.xml檔案是非常重要的,是repo倉庫的大管家,在裡面定義著repo中可用的git專案。這裡主要講的是Android原始碼中的manifest.xml檔案,應用程式中的manifest檔案不是很瞭解,沒有

Git使用技巧(整理)一

再所有操作之前都需要先拉最新程式碼 1 從伺服器clone程式碼   git clone [email protected]:member 2 拉最新程式碼   git pull --rebase 3 提交程式碼   git add .   git commit

repo init報錯Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle

在涉及到AOSP的專案程式碼同步時,大家經常會用到repo工具(關於repo可以看我之前寫的一篇文章)。由於眾所周知的原因,我們在訪問谷歌服務時會受到各種限制。執行repo init命令時,設計者出於維護和使用體驗的考慮,每次都要去伺服器端同步最新版本的repo

git技巧git blame && git show 檢視某一行程式碼的修改歷史

先檢視某行程式碼由誰寫的,在哪個commit中提交的: git blame file_name 其顯示格式為: commit ID | 程式碼提交作者 | 提交時間 | 程式碼位於檔案中的行數 |