Git—代碼管理、提交及沖突解決流程的思考


1 代碼管理

  Git不多說,大家都知道這是一個分布式版本控制系統,對開發者而言,可以敏捷高效的進行代碼管理及開發,也非常適合多人協作。話不多說,下面就來點干貨。

1.1 創建新倉庫

  我們在工作區(就是自己的電腦里)創建一個新的文件夾,這個文件夾用來存放遠端同步過來的代碼庫。進入到這個新建的文件夾,執行創建新的倉庫的命令:
$ git init

補充:
  差點忘記介紹一下git維護的“樹”(3棵):

  1. 工作區: 也就是我們的電腦里的實際文件所在位置,即為工作目錄;
  2. 暫存區:Index,暫存的意思就是臨時保存我們的改動,類似於緩存;
  3. 版本庫:HEAD,這是git的版本庫,指向我們最后一次提交的結果。

1.2 克隆倉庫(拷貝項目)

$ git clone <repository_address>

舉例:gerrit倉庫:
git clone "ssh://usera@gerrit.cmss.com:123456xx/Project1/Project1.1"

我們也可以使用git clone <repository_address> <local_dir>命令將倉庫拷貝到指定的local_dir目錄中。

2 代碼提交流程

2.1 遠程拉取最新倉庫內容

$ git pull

2.2 查看分支

查看本地分支
$ git branch
查看遠端分支
$ git branch -a

2.3 切換分支

$ git checkout -b local_branch_name origin/remote_branch_name
其中local_branch_name是本地分支的取名;remote_branch_name是遠端分支的名稱;

2.4 開發代碼

在這個分支上進行代碼的開發或者修改;

2.5 代碼新增

逐個添加
$ git add file_name
其中file_name為需要提交的代碼路徑名;

一次性添加
我們也可以一次性全部提交
$ git add -A

2.6 代碼提交

基於模板提交
$ git commit
會跳轉到之前編輯好的git提交模板,進行模板信息編寫並保存;

基於命令行的提交信息
$ git commit -m "code infomation"
其中"code infomation替換為本次提交代碼的信息;

2.7 代碼拉取合並

一般在代碼推送前,我們最好進行一次拉取操作
$ git pull --rebase

這個操作主要是避免,在我們修改代碼的同時,其他開發者也在修改代碼並提交合並到了同一個分支,此時遠端倉庫和本地工作目錄的基線不一致。如果有沖突,我們就手動去解決這些沖突。

2.8 代碼推送

$ git push origin HEAD:refs/for/remote_branch_name" 其中,remote_branch_name`是遠端分支的名稱;

3 其他常用命令

在使用git時,我們也會使用一些輔助性的命令進行檢查或者進行代碼管理。

3.1 查看狀態

$ git status

3.2 查看日志

$ git log
或者
$ git reflog

4 代碼沖突

  一般都是在提交代碼前沒有進行git pull拉取最新代碼引起的,當然,當自己的代碼開發完畢后,再次拉取最新代碼也有可能和本地代碼也沖突。這個時候需要我們去解決這些沖突。
方案一:我們可以通過上述的git pull --rebase去解決沖突,然后重新git addgit commit,最后git push

方案二:我們可以通過git log查看commit-id,找到最近一次提交,然后在通過git reset --soft commit-id跳轉到倒數第二次提交的位置,進行代碼更改。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM