1. 程式人生 > 其它 >git本地專案程式碼上傳至碼雲gitee

git本地專案程式碼上傳至碼雲gitee

1. 安裝git工具

  網上教程很多,自行百度,安裝包可找我取

    

2. 首次安裝,配置基本資訊

  

git config user.name ''    # 新增名稱
git config user.email ''    # 新增郵箱
cat .git/config               # 檢視基本資訊

  

 3. 將本地倉庫與碼雲倉庫關聯

  

git init            # 完成初始化
git remote add origin 專案地址  #本地倉庫與碼雲倉庫關聯  

4. 上傳原生代碼到遠端碼雲倉庫

git add .         #
新增目錄下所有發生改變的檔案 git commit -m '註釋資訊' # 添加註釋資訊,一定要寫! git push -u origin master # 本地倉庫程式碼提交至遠端倉庫

5. 遠端碼雲倉庫下載到本地

git clone 專案地址    # 拉取遠端程式碼到本地

6. 常用的命令

檢視所有分支  :gitbranch -a

切換到某一分支:git checkout  分支名稱

合併分支:git merge 原分支  目標分支

提交命令有兩個,git push origin master(正常提交)和git push origin master -f(強制提交,強制提交可能會把之前的commit註釋資訊,不會改變修改的程式碼,慎用),都是提交到master分支

檢視遠端分支 git branch
-a或git branch -r 建立本地分支 git branch demo_fenzhi 切換到本地分支 git checkout demo_fenzhi 刪除本地分支 git branch -d demo_fenzhi 檢視本地分支狀態 git branch 建立遠端的分支,並且把本地分支推送到遠端分支上 git push origin demo_fenzhi:demo_fenzhi 本地分支名稱:遠端分支名稱 刪除遠端分支 git push origin :demo_fenzhi 或git push origin
--delete demo_fenzhi 本地分支與遠端分支比較 git diff demo_dev origin/demo_fenzhi //demo_dev為本地分支,demo_fenzhi為遠端分支 本地分支關聯遠端分支 git pull origin demo_fenzhi 新分支並切換到分支 git checkout -b bende_fenzhi 建立+切換分支:git checkout -b <name> 合併某分支到當前分支:git merge <name> 恢復刪除後未git add的檔案 git checkout -f或git clean -df git fetch origin branchname:branchname 可以把遠端某各分支拉去到本地的branchname下,如果沒有branchname,則會在本地新建branchname git checkout origin/remoteName -b localName 獲取遠端分支remoteName到本地新分支localName,並跳到localName分支 git還原某個特定的檔案到之前的版本 場景: 對於某個git控制下的檔案進行了修改,但是改的不滿意,想退回到改之前的版本。假定該檔案為 src/main/main.c 解決方法: 第一步: 在命令列中輸入 gitlog src/main/main.c 得到該檔案的commit 歷史。 會得到類似下面的介面 第二步: 複製需要回退版本的hash,在此假設我們回退到 d98a0f565804ba639ba46d6e4295d4f787ff2949 ,則複製該序列即可 第三步:checkout 對應版本。格式為 git checkout <hash> <filename>, 在此即為命令列中輸入 git checkout d98a0f565804ba639ba46d6e4295d4f787ff2949 src/main/main.c 第四步: commit checkout下來的版本。如: git commit -m "revert to previous version" 1、git reset 沒有push,這種情況發生在你的原生代碼倉庫,可能你add ,commit 以後發現程式碼有點問題. 首先,Git必須知道當前版本是哪個版本,在Git中,用HEAD表示當前版本,也就是最新的提交commit_id(79f673d631b08907496ce792f429e1f00da25b73),上一個版本就是HEAD^,上上一個版本就是HEAD^^,當然往上100個版本寫100個^比較容易數不過來,所以寫成HEAD~100。 · HEAD指向的版本就是當前版本,因此,Git允許我們在版本的歷史之間穿梭,使用命令git reset--hard 79f673d631b08907496ce792f429e1f00da25b73。 · 穿梭前,用git log可以檢視提交歷史,以便確定要回退到哪個版本。 · 要重返未來,用git reflog檢視命令歷史,以便確定要回到未來的哪個版本。 2、git revert 已經push,對於已經把程式碼push到線上倉庫,你回退原生代碼其實也想同時回退線上程式碼,回滾到某個指定的版本,線上,線下程式碼保持一致.你要用到下面的命令 git revert用一個新提交來消除一個歷史提交所做的任何修改. revert 之後你的原生代碼會回滾到指定的歷史版本,這時你再 git push既可以把線上的程式碼更新.(這裡不會像reset造成衝突的問題) revert 使用,需要先找到你想回滾版本唯一的commit標識程式碼,可以用 git log 或者在adgit搭建的web環境歷史提交記錄裡檢視. git revertc011eb3c20ba6fb38cc94fe5a8dda366a3990c61 3、兩者區別 git revert是用一次新的commit來回滾之前的commit,git reset是直接刪除指定的commit看似達到的效果是一樣的,其實完全不同. 第一:上面我們說的如果你已經push到線上程式碼庫, reset 刪除指定commit以後,你git push可能導致一大堆衝突(或git push -f強制推送).但是revert並不會. 第二:如果在日後現有分支和歷史分支需要合併的時候,reset恢復部分的程式碼依然會出現在歷史分支裡.但是revert方向提交的commit並不會出現在歷史分支裡. 第三:reset是在正常的commit歷史中,刪除了指定的commit,這時 HEAD 是向後移動了,而 revert是在正常的commit歷史中再commit一次,只不過是反向提交,他的 HEAD 是一直向前的.

7. 踩坑實錄

   1) 上傳更新檔案時,提示git程序被佔用

  Another git process seems to be running in this repository, e.g. an editor o

  解決:

  刪除根目錄下的隱藏檔案 .git 中的index.lock檔案