Git代碼管理是分佈式管理方式系統.優勢在於其極高的安全性和很是強大的分支管理.
linux
用git add .
添加全部的修改或者git add <文件名>
添加單個指定的文件修改到暫存區中.git
git rm --cached "文件路徑"
不刪除物理文件,緊將物理文件刪除.git rm --f "文件路徑"
不只將該文件從緩存中 刪除,還將物理文件刪除(不會放到垃圾桶).git reset <版本號>
利用版本庫清空暫存區.原理:將當前分支重設(reset)到指定的
--hard
git reset --hard <commit號>
重設(reset)index和working directory,自從
--soft
git reset --hard <commit號>
index和working directory中的內容不做任何改變,僅僅把HEAD指向
git commit -m '本次commit的描述'
git reset <版本號>
利用版本庫清空暫存區.原理:將當前分支重設(reset)到指定的
--hard
git reset --hard <commit號>
重設(reset)index和working directory,自從
--soft
git reset --hard <commit號>
index和working directory中的內容不做任何改變,僅僅把HEAD指向
git reflog
查找你想要的commit版本號.繼續用
git reset --hard <commit號>
回退
用git push
bash
1.從線上拉項目到本地
用 git clone "項目的地址路徑"
克隆一個git管理的項目到本地
2.本地項目上傳線上
git init
git remote add origin "地址url"
服務器
1.查看文本內容
cat <文件名>
2.查看git的狀態
git status
會告訴你在當前的分支上git的狀況(有沒有修改,修改的文件是什麼等)
➜ learngit git:(master) git status On branch master Your branch is up-to-date with 'origin/master'. nothing to commit, working directory clean
3.查看更詳細的文件修改
git diff
查看全部文件的不一樣
git diff <文件名>
查看指定文件的不一樣
diff 是difference的縮寫.只能查看還未add(還沒加入到暫存區)的修改
4.查看全部的commit信息
git log
git log --pretty=oneline
更簡潔的查看log信息(只有commit號和描述信息)
5.查看全部的git操做過的命令,能夠找到刪除了的commit號
git reflog
6.查看分支合併圖
git log --graph
網絡
1 + 1 = 2 這個區間內的內容是當前開發者修改的
1 + 2 = 3 這個區間內的內容是其餘開發者修改的
須要人工判斷具體是刪除或者保留哪個修改內容.而且把1,2,3行提示刪除掉.
1.分支的建立和切換
git branch "分支名"
建立一個分支 git checkout "分支名"
切換到該分支git checkout -b "分支名"
2.列出全部的分支
git branch
用*標記當前的分支git branch -a
列出遠程分支3.合併分支
git merge "分支名"
合併指定分支到當前分支git rebase "分支名"
合併指定分支到當前分支4.刪除分支
git branch -d "分支名"
git branch -D "分支名"
the branch XXX is not fully merged
(XXX分支有沒有合併到當前分支的內容)git push origin :<分支名>
(危險命令哦)5.本地新建了一個分支要推送到線上,須要設置關聯或者追蹤.
git push origin 本地分支名:遠程分支名
6遠程端生成了一個新的分支,拉取到本地.
git branch --set-upstream-to=origin/<線上分支名> <本地分支名>
git pull
用issue做爲分支的開頭標記,當有一個bug出現須要改的時候,先拉取一個issue分支,修改併合併到開發分支上,而後刪除issue分支.
git branch -D <分支名>
強制刪除該分支內容1.git stash
暫存
2.git stash list
查看全部的暫存
3.git stash apply
從暫存開始執行,可是stash內容不會刪除.
4.git stash drop
刪除暫存
5.git stash pop
恢復暫存的同時刪除暫存
6.git stash apply stash@{0}
恢復指定的暫存
1.查看遠程倉的信息
git remote
git remote -v
顯示更詳細的信息
2.將分支推送到遠程倉
git push origin 本地分支名:遠程分支名
1.git tag <name>
新建一個標籤
2.git tag -a <name> -m "指定的標籤信息"
3.git show <tag名字>
查看詳細的tag信息
4.git tag
查看全部的tag名字
5.git tag -d <標籤名字>
刪除一個標籤
6.git push origin <標籤名>
推送標籤到遠程
7.git push origin --tags
一次性推送全部未推送的標籤
8.刪除遠程倉上的tag
git tag -d <tag名字>
git push origin :refs/tags/<tag名字>
iOS 用到的.gitignore
https://github.com/github/gitignore/blob/master/Objective-C.gitignore
在工做區建立一個名字爲.gitignore
文件.把要忽略的文件名字填進去,並提交到Git.Git會自動忽略這些文件的修改.把連接中的內容信息copy到.gitignore
文件中.
記住必定要把.gitignore
拉取到具體的分支上纔有用.
git check-ignore
檢查ignore內容
git add -f <文件名>
即便在gitignore中文件,也能夠提交.
UserInterfaceState.xcuserstate
的屏蔽
在. gitignore文件中加入UserInterfaceState.xcuserstate
.在終端中輸入git rm --cached <你的工程名字>.xcodeproj/project.xcworkspace/xcuserdata/<該電腦用戶名>字.xcuserdatad/UserInterfaceState.xcuserstate
而後add,commit,push等操做.
1.配置做者名稱
git config --global user.name "Your Name"
2.配置我的郵箱
git config --global user.email "email@example.com"
3.配置git的顏色(文件名會標記上顏色)
git config --global color.ui true
mkdir "目錄名"
在當前路徑下建立一個文件夾mvdir "目錄1" "目錄2"
移動或者重命名一個目錄 (若是目錄2不存在,就直接修改目錄1的名稱爲目錄2)rmdir "目錄名"
刪除一個目錄touch
建立一個文件vim "文件名
編輯文件,若是文件不存在,就建立並進入編輯.sudo rm -rf <文件名>
在上帝權限下刪除,能夠刪除一個該用戶沒有權限的文件(包括系統文件),不建議使用rm <文件名>
能刪除當前用戶權限下的文件cd + "路徑"
進入該文件目錄下(也能夠將文件直接拖進來)cd ..
回到上級目錄cd .
當前目錄 cd / 回到根目錄cd test.rtf
不可用. 不能cd到文件裏.只能cd到目錄.-bash: cd: test.rtf: Not a directory
cp "須要拷貝的文件路徑" "目標地址路徑"
mv "須要移動的文件路徑" "目標地址路徑"
file "文件名"
顯示文件的類型wc "文件名"
統計文件的字符數,詞數,行數
pwd
查看當前所在的目錄
ls
顯示當前路徑下有什麼文件ls + "目錄名"
顯示特定的路徑下有什麼文件ls -w
顯示中文ls -l
詳細信息ls -a
顯示全部文件,包括隱藏文件date
顯示系統的當前日期和時間cal
顯示日曆ping "url"
給一個遠程主機發送 迴應請求control + c
who
列出當前登陸的全部用戶whoami
顯示當前正進行操做的用戶名-r
就是向下遞歸,無論有多少級目錄,一併刪除-f
就是直接強行刪除,不做任何提示的意思-rf
向下遞歸強制刪除