由于之前一直使用svn,現在項目使用git,顧根據網上找的學習資料,自己梳理了下,收獲蠻多,這里做個記錄,如果能幫助到您那是最好不過的。
1.大致步驟
使用工具:idea,github,碼云
webstorm和idea由于都是一個公司的產品,操作手法基本一致,這里主要是講idea
1.安裝idea,下載git工具,idea中進行關聯
2.在本機上生成公鑰和私鑰,然后在自己的github和碼云賬號上進行注冊,這樣才能把自己的項目上傳上去。
3.在主分支master上進行git add,commit,push,pull等演示操作
4.模擬開個分支然后再合并主分支的操作
5.使用stash存儲合并主分支
6.模擬一些特殊場景的報錯解決方法
7.github和碼云上傳的介紹
8.本次學習git,github,碼云所推薦您看的一些文章
2.git客戶端下載
2.1 安裝完成后,在開始菜單里找到“Git”->“Git Bash”,蹦出一個類似命令行窗口的東西,就說明Git安裝成功!打開Git Bash 命令行操作界面。
2.2創建ssk,獲得本機的公鑰和私鑰
ssh-keygen -t rsa -C "youremail@example.com"
如果一切順利的話,可以在用戶主目錄里找到.ssh目錄,里面有id_rsa和id_rsa.pub兩個文件,這兩個就是SSH Key的秘鑰對,id_rsa是私鑰,不能泄露出去,id_rsa.pub是公鑰,可以放心地告訴任何人,目錄就是上面的c:/users/sunjian/.ssh/id_rsa
第2步:登陸GitHub,打開“Account settings”,“SSH Keys”頁面:
然后,點“Add SSH Key”,填上任意Title,在Key文本框里粘貼id_rsa.pub文件的內容:
3.私鑰公鑰配置好了,現在上傳到github的路已經打通了。
3.1在idea上新建一個springboot項目用來測試github
這步作用主要是可以把本地項目上傳到github上面
現在就先把這個springbootdemo上傳到github上面,然后在測試commit,add,pull,push
如何把本地修改的文件先放到本地庫中再從本地庫中去除
如果是新增文件夾,一定要把文件夾git add進去,光add文件也不行.
push完成,遠程github服務器更新了
相當于git log這個指令
compare with 也是和最近一次線上版本進行比較,compare with branch是和分支上的代碼進行比較.
show current revision 可以查看此次文件提交的版本號
竟然能夠回退上2個版本,服務器上的沒刪,本地的回退了2個版本。那就要能夠返回到最近那個版本。如何操作呢
另外由于回退到上2個版本了,黃色卡片(head)現在指向的是springbootdemo測試git和github,所以這個head就是一個版本的index下標
這個版本號也沒必要寫全,git是模糊搜索的,不寫全可能會搜索出多個版本,你在選擇其中一個版本即可
如果想把遠程master分支上的TestDemo2也刪除掉,先本地刪除后,再commit changes到master分支,就可以刪掉master分支上的TestDemo2
commit之后只是放到了暫存區,然后還需要push之后才能更新master分支的版本庫,刪除testdemo2
說明現在是在dev的分支上,我們現在git add,commit,push,先提交到自己的dev分支上
status20171227這個相當于是一個臨時存儲的id,需要記錄,然后再右下角new branch,創建分支的時候吧status20171227記錄上去即可
status和new branch普通分支的區別是:比如在master主分支基礎上創建了一個status,那就是吧master主分支存儲起來放到另外一個分支上去進行修改,改完以后在恢復到master上面進行合并。
new branch就如前面看到的,只是將master當中其中一部分已經commit的放到另外一個分支上去,不是master全部內容
這些操作只要commit即可,不需要push遠程倉庫,commit就是放在緩存區,然后本地合并完以后,再push到遠程分支上。
接下來說下如何使用碼云
首先要注冊碼云的賬號密碼,操作手法和github差不多,把公鑰和私鑰去碼云那邊注冊。
總結:本次git學習推薦網站
使用WebStorm/IDEA上傳本地項目到GitHub
廖雪峰的官方網站
本次學習的過程:一開始先通過本地git,git bash非圖形化界面練了遍,然后再根據軟件來操作,git里面有很多命令,軟件當中的一些操作也是常用指令,如果滿足不了需求,可以自己輸入指令。下面是git一些常用指令。
創建文件夾: mkdir <name>
進入文件夾: cd <name>
顯示當前目錄: pwd
把當前目錄變成Git: git init
顯示隱藏目錄: ls -ah
查看git倉庫狀態: git status
把文件添加到git倉庫: git add <file name>
把文件提交到倉庫: git commit -m "說明"
查看修改后的不同: git diff
查看提交歷史: git log --pretty=oneline
回退到上一個版本: git reset --hard HEAD^
回退到某個版本: git reset --hard <commit id>
查看命令歷史: git reflog
工作區和暫存區對比: git diff
暫存區和分區對比: git diff -- cached
工作區和分支對比: git diff -- <file...>
丟棄工作區的修改: git checkout -- <file...>
撤銷暫存區的修改: git reset HEAD <file...> + git checkout -- <file...> 或 git reset --hard HEAD
刪除工作區文件: rm <file...>
從版本庫刪除該文件: git rm <file...> + git commit -m "說明"
撤銷工作區文件的刪除: git checkout -- <file...>
撤銷暫存區文件的刪除: git reset HEAD <file...> + git checkout -- <file...> 或 git reset --hard HEAD
創建SSH Key: ssh-keygen -t rsa -C "15521232672@163.com"
關聯一個遠程庫: git remote add origin git@github.com:RaymondHww/learngit.git
推送master分支的內容: git push -u origin master (第一次推送要參數 -u ,之后就不用了)
從遠程克隆倉庫到本地: git clone git@github.com:RaymondHww/gitskills.git
查看分支: git branch
創建分支: git branch <name>
切換分支: git checkout <name>
創建+切換分支: git checkout -b <name>
合并某分支到當前分支: git merge <name>
刪除分支: git branch -d <name>
查看分支合并情況: git log --graph --pretty=oneline --abbrev-commit
使用普通模式合并: git merge --no-ff -m "說明" dev
把工作現場儲藏: git stash
查看儲藏的工作現場: git stash list
恢復儲藏的工作現場: git stash apply stash@{0}
刪除stash內容: git stash drop stash@{0}
恢復并刪除stash內容: git stash pop
強行刪除未合并的分支: git branch -D <branch_name>
顯示詳細的遠程庫信息: git remote -v
推送分支到遠程庫: git push origin master 或 git push origin dev
克隆遠程庫到本地后只有master分支
在本地創建和遠程分支對應的分支:git checkout -b branch-name origin/branch-name
建立本地分支和遠程分支的關聯: git branch --set-upstream branch-name origin/branch-name
因此,多人協作的工作模式通常是這樣:
首先,可以試圖用git push origin branch-name推送自己的修改;
如果推送失敗,則因為遠程分支比你的本地更新,需要先用git pull試圖合并;
如果合并有沖突,則解決沖突,并在本地提交;
沒有沖突或者解決掉沖突后,再用git push origin branch-name推送就能成功!
如果git pull提示“no tracking information”,則說明本地分支和遠程分支的鏈接關系沒有創建,
用命令git branch --set-upstream branch-name origin/branch-name。
tag就是一個讓人容易記住的有意義的名字,它跟某個commit綁在一起。
打一個新標簽到最新的提交上: git tag v1.0
打一個新標簽到歷史的提交上: git tag v1.1 <commit-id>
查看所有標簽: git tag
查看標簽信息: git show v1.0
創建帶有說明的標簽: git tag -a v1.2 -m "說明" <commit-id>
通過-s用私鑰簽名一個標簽: git tag -s v1.3 -m "說明" <commit-id>
刪除本地標簽: git tag -d v1.0
推送某個標簽到遠程: git push origin <tag-name>
一次性推送全部尚未推送到遠程的標簽:git push origin --tags
刪除已經推送到遠程的標簽: git tag -d v1.0 然后 git push origin :refs/tags/v1.0