git就是乙個分布式的code管理工具
客戶端並不只提取最新版本的檔案快照,而是把**倉庫完整地映象下來。這麼一來,任何一處協同工作用的伺服器發生故障,事後都可以用任何乙個映象出來的本地倉庫恢復。因為每一次的提取操作,實際上都是一次對**倉庫的完整備份
參考書:
1:2:
一、git首先是得有個git倉庫,獲取倉庫有兩種
1:git init (新建倉庫)
2: git clone git:
(clone乙個倉庫)
tips:,第乙個平常自己管理**很實用,第二個也就是從伺服器拷貝乙份完整的**下來,然後在本地操作。
二、git branch相關的操作
1:git checkout -b remotes/origin/test-branch -b test-branch
檢出遠端的branch到本地並且生成乙個本地的branch
2:git branch -a (顯示所有branch,客戶端和遠端伺服器的branch)
3:git branch -r (顯示遠端伺服器的branch)
4:git diff test-branch remotes/origin/test-branch或者 git diff test-branch origin/test-branch(顯示本地和遠端branch裡的區別)
5:git push origin master
origin指定了你要push到哪個remote
master其實是乙個「refspec」,正常的「refspec」的形式為」+:」,冒號前表示local branch的名字,冒號後表示remote repository下 branch的名字。注意,如果你省略了,git就認為你想push到remote repository下和local branch相同名字的branch。聽起來有點拗口,再解釋下,push是怎麼個push法,就是把本地branch指向的commit push到remote repository下的branch,比如
6:git push origin master:master
(在local repository中找到名字為master的branch,使用它去更新remote repository下名字為master的branch,如果remote repository下不存在名字是master的branch,那麼新建乙個)
7:git push origin master (省略了,等價於「git push origin master:master」)
8:git push origin master:refs/for/test-branch (在local repository中找到名字為master的branch,用他去更新remote repository下面名字為test-branch的branch)
9:git push origin head:refs/for/test-branch (head指向當前工作的branch,master不一定指向當前工作的branch,所以我覺得用head還比master好些)
tips:ref/for代表的含義可以參考:
10:git push origin :test-branch (再origin repository裡面查詢test-branch,刪除它。用乙個空的去更新它,就相當於刪除了)
三、git檢視類、檢出類命令
2:git log(顯示提交的log資訊)
3:git show [commit-id] hello-world.c (可以檢視提交的某次中的修改)
4:git relog (commt-id記錄丟失了可用此命令首先找到最前面顯示的id,然後git cherry-pick即可找回(
git cherry-pick
用於把另乙個本地分支的commit修改應用到當前分支))
5:git checkout [commit-id] hello-world.c (將code的版本恢復到某次提交的狀態,如果通過amend修改的也可以通過git reflog來切換到某個版本)
6:git reset --hard [commit-id] (回退到commit-id的那次提交,並且原始碼也返回到commit-id的那次提交)
7:git reset --soft [commit-id] (回退了commit)
四、git config相關
1:git remote -v 顯示遠端fetch和push的url(如果不對可以使用,git config --global -e來進行修改)
2:(要用到的到時候在更新吧)
Git 情景處理
需要將遠端分支checkout到本地並且在本地建立對應分支 有a,b兩個分支,a分支上新增了乙個新功能,現在想將這個功能也新增到b上,但是a分支的其它 不方便合併到b分支 本地提交了多個commit,需要push到伺服器上時,希望將這些commit合併成乙個,以便其他開發者閱讀 假設提交了a,b,c...
全域性臨時表使用的情景
全域性臨時表有兩種模式 一種是基於會話級別的,會話與會話之間的資料是隔離的,當會話段掉,資料就會清空 一種是基於事務級別的,當執行commit或者rollback 資料將清除,全域性臨時表使用的是臨時表空間的位置。臨時表即使當前會話已經提交了 commit 資料,別的會話也看不到它的資料。對於臨時表...
var 不可使用的情景
在寫 的過程中,遇到了乙個很奇怪的現象,後經過大佬的分析討論教學,解決了問題和找到原因。現在分享給跟我一樣初學者的新手們一起看看。老鳥沒見過的也歡迎一起學習進步。建立乙個datatable dt newdatatable dt.columns.add 訂單日期 typeof datetime dt....