天天看點

GIT常用指令for QA2

1. 我之前的git指令部落格位址

https://blog.csdn.net/weixin_42498050/article/details/81037572

部落格的瞎限制導緻之前的部落格編輯後無法儲存成功,不得不建立

2. git配置for macOS

2.1> git基本配置

通過下面這些指令,配置使用者名和郵箱

git config --global user.name "your_name"

名字和郵箱需要用雙引号包裹,回車之後,如路徑沒有任何變化說明設定成功;

git config --global user.email "[email protected]"

此處的郵箱賬号可以是假的賬号,但是格式必須複合郵箱格式,同樣回車成功之後路徑不會有變化;

git config core.ignorecase false

配置本地倉庫檔案大小寫敏感,建議配置,以免檔案更新有誤;

git config --list

檢視配置

➜  ~ vim ~/.gitconfig

GIT常用指令for QA2

2.2> 生成SSH key

在終端輸入指令:ssh-keygen -t rsa -C your-email.com(注意:這裡要改成你自己的郵箱)

箭頭的地方,需要直接會車三下。就會生成需要的ssh-key

GIT常用指令for QA2

發現在/Users/lishan/.ssh 下生成一對公私鑰

GIT常用指令for QA2

3> 把公鑰id_rsa.pub 複制粘貼到你的git- Profile Settings- SSH Keys

GIT常用指令for QA2

再送出代碼就ok了 

參考部落格:https://www.jianshu.com/p/b9528cce4e9f

3. 如果先在本地寫了代碼,再關聯到遠端倉庫

參考部落格 https://www.cnblogs.com/idiv/p/8565773.html

Git 本地項目關聯遠端倉庫

初始化

在本地需要關聯到遠端倉庫的項目根目錄下執行

git init 
           

然後關聯遠端倉庫 [project]。你需要在git建立一個倉庫。New project 以下指令行填寫git位址。我這裡寫的是gitee的位址

git remote add origin [email protected]:idiv/[project].git
           

送出

git add .
git commit -m '初始化項目'
git push -u origin master
           

一般在github或者gitee上建立項目會帶有一個readme檔案,也很有可能你本地git init的項目中也存在這樣的檔案,這樣就會沖突,如果沒有沖突到此就送出完成了

解決沖突

如果遠端倉庫不為空就送出失敗, 解決方案 rebase = fetch + merge

拉遠端倉庫檔案

git pull --rebase origin master
           

有沖突解決沖突

可以在本地檢視一下哪些地方沖突了,手動解決即可。

繼續流程走

git rebase --continue
           

接着送出

git push -u origin master
           

ps: 強制merge

git pull origin master --allow-unrelated-histories
           

至此,已經在本地初始化項目後關聯到遠端倉庫了

GIT常用指令for QA2

4. 在别人的項目建立分支之前,送出工單開通developer的權限,否則無法建立遠端分支、送出代碼

否則git倉庫 new branch按鈕不會出現

GIT常用指令for QA2

注意:如果送出代碼時,一直讓輸入username  password,則需要在idea配置 VCS -Git -Clone -Login to Github 配置登入github頁面的使用者名密碼。如果用指令行,注意不為➜  ~ vim ~/.gitconfig 下的username!!!

GIT常用指令for QA2
GIT常用指令for QA2

盡可能的用指令行代替頁面操作

➜  perftest git:(master)

git checkout -b lishaniOS   建立地分支并且自動切換到新分支

git push origin lishaniOS:lishaniOS   本地:遠端分支 local_branch:remote_branch   無需單獨在git頁面建立遠端分支

5. 基于master分支建立B分支

GIT常用指令for QA2

檢視git界面,可以看到遠端倉庫有了新分支

GIT常用指令for QA2

master受保護的分支,A分支代碼為某業務線最新的代碼,在建立C分支時先切到A分支再建立C分支

GIT常用指令for QA2

把剛剛基于master建立的分支B删除,再基于A分支建立C分支

GIT常用指令for QA2

6. 自己的分支關聯到其他項目、分支關聯到新的git位址

項目X,基于X的master分支拉新分支A(newcpw),A分支關聯到新項目Y遠端分支

參考部落格 https://www.cnblogs.com/xuliangxing/p/7132656.html?utm_source=itdadao&utm_medium=referral

1> 先在gitlab建立新的項目Y,New project

GIT常用指令for QA2

2> X項目的master分支上執行 git checkout -b newcpw   --建立并切換分支A

3> 此時切換到了最新的分支A,執行 git remote remove origin   --删除本地指定的遠端位址

4> 解除A分支與X項目git的關聯後,執行 git remote add origin http://gitlab.XX-inc.com/XX.ls/newcpw.git   --本地倉庫和遠端倉庫建立連接配接

5> git push -u origin master   --将本地的master分支推送到origin主機,同時指定origin為預設主機,後面就可以不加任何參數使用git push了

完成,可以在Y項目的git位址檢視是否有新的分支和送出記錄了

如遇fatal: unable to update url base from redirection: 解決辦法:把https改成git即可

GIT常用指令for QA2

重新解除關聯再關聯換成SSH的git位址後,就對了

GIT常用指令for QA2
GIT常用指令for QA2

如果想把X項目的master分支關聯到Y項目,執行git push -u origin master  

如果想把X項目的yksearch分支關聯到Y項目,執行git push -u origin yksearch  

GIT常用指令for QA2

關聯成功查詢Y項目的git倉庫

GIT常用指令for QA2

成功

7. git指令簡寫:

gst   等于    git status

gcam 'RD日志調整後的解析'   等于    git commit -m 'XX'

gco   等于   git checkout XX

檢視git别名:git config --list

alias.s=status

alias.a=!git add . && git status

alias.au=!git add -u . && git status

alias.aa=!git add . && git add -u . && git status

alias.c=commit

alias.cm=commit -m

alias.ca=commit --amend

alias.ac=!git add . && git commit

alias.acm=!git add . && git commit -m

alias.l=log --graph --all --pretty=format:'%C(yellow)%h%C(cyan)%d%Creset %s %C(white)- %an, %ar%Creset'

alias.ll=log --stat --abbrev-commit

alias.lg=log --color --graph --pretty=format:'%C(bold white)%h%Creset -%C(bold green)%d%Creset %s %C(bold green)(%cr)%Creset %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative

alias.llg=log --color --graph --pretty=format:'%C(bold white)%H %d%Creset%n%s%n%+b%C(bold blue)%an <%ae>%Creset %C(bold green)%cr (%ci)' --abbrev-commit

alias.d=diff

alias.master=checkout master

alias.spull=svn rebase

alias.spush=svn dcommit

alias.alias=!git config --list | grep 'alias\.' | sed 's/alias\.\([^=]*\)=\(.*\)/\1\     => \2/' | sort

檢視送出記錄 :git log 縮寫 glg

檢視某人的送出記錄:git log --author=lishan

GIT常用指令for QA2
GIT常用指令for QA2

6. B分支基于A分支建立,A分支代碼更新,切換到A git pull ,再切換到B git merge A --把A代碼合入B分支,在合并代碼之前,B分支的代碼需要送出。此時的B分支代碼無需送出

git log --author=XXX

git cherry-pick 8f64e1a4ac9ab94d079cfdbe8a1db2344fa66763

把A在A分支送出某次代碼(送出号commit唯一号)合并到自己的分支

7. 切換到A分支   git merge B  無法退出,按control + Z ,有時merge會自動解決沖突

GIT常用指令for QA2

8. GIT本地項目關聯遠端倉庫

建立新的git位址,新工程首次關聯送出到git

參考部落格https://www.cnblogs.com/idiv/p/8565773.html

在gitlab建立自己的git

GIT常用指令for QA2

➜  noqc ✗ git init

Reinitialized existing Git repository in /Users/lishan/PycharmProjects/noqc/.git/

➜  noqc git:(master) ✗ git remote add origin [email protected]:xx/clientmoke.git

GIT常用指令for QA2

 4903  git init

 4904  git remote add origin [email protected]:shuxin.ls/clientmoke.git

 4905  git add *

 4906  gst

 4907  gcam 'update'

 4908  git push -u origin master

git branch --set-upstream-to=origin/master master    遠端分支 本地分支關聯 

 4909  git pull

送出成功後就可以在gitlab看到記錄了~~

GIT常用指令for QA2

如遇

error: the requested upstream branch 'origin/master master' does not exist

hint: 

hint: If you are planning on basing your work on an upstream

hint: branch that already exists at the remote, you may need to

hint: run "git fetch" to retrieve it.

hint: 

hint: If you are planning to push out a new local branch that

hint: will track its remote counterpart, you may want to use

hint: "git push -u" to set the upstream config as you push.

GIT常用指令for QA2

待續、、、、、

QA