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
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPB1UMBR0T1ElaNBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL3MjN3ADN1cTMyETMxkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
2.2> 生成SSH key
在終端輸入指令:ssh-keygen -t rsa -C your-email.com(注意:這裡要改成你自己的郵箱)
箭頭的地方,需要直接會車三下。就會生成需要的ssh-key
發現在/Users/lishan/.ssh 下生成一對公私鑰
3> 把公鑰id_rsa.pub 複制粘貼到你的git- Profile Settings- SSH Keys
再送出代碼就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
至此,已經在本地初始化項目後關聯到遠端倉庫了
4. 在别人的項目建立分支之前,送出工單開通developer的權限,否則無法建立遠端分支、送出代碼
否則git倉庫 new branch按鈕不會出現
注意:如果送出代碼時,一直讓輸入username password,則需要在idea配置 VCS -Git -Clone -Login to Github 配置登入github頁面的使用者名密碼。如果用指令行,注意不為➜ ~ vim ~/.gitconfig 下的username!!!
盡可能的用指令行代替頁面操作
➜ perftest git:(master)
git checkout -b lishaniOS 建立地分支并且自動切換到新分支
git push origin lishaniOS:lishaniOS 本地:遠端分支 local_branch:remote_branch 無需單獨在git頁面建立遠端分支
5. 基于master分支建立B分支
檢視git界面,可以看到遠端倉庫有了新分支
master受保護的分支,A分支代碼為某業務線最新的代碼,在建立C分支時先切到A分支再建立C分支
把剛剛基于master建立的分支B删除,再基于A分支建立C分支
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
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即可
重新解除關聯再關聯換成SSH的git位址後,就對了
如果想把X項目的master分支關聯到Y項目,執行git push -u origin master
如果想把X項目的yksearch分支關聯到Y項目,執行git push -u origin yksearch
關聯成功查詢Y項目的git倉庫
成功
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
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會自動解決沖突
8. GIT本地項目關聯遠端倉庫
建立新的git位址,新工程首次關聯送出到git
參考部落格https://www.cnblogs.com/idiv/p/8565773.html
在gitlab建立自己的git
➜ 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
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看到記錄了~~
如遇
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.
待續、、、、、