Git的學習總結和使用時遇到的問題。


         git的安裝             windows安裝git客戶端即可,linux下 yum install git 安裝git ,一般已經安裝了。        在本地創建一個版本庫 : git init                        會出現一個.git 文件夾,用於跟蹤項目版本修改記錄        用的最多的命令: git status  , git  add , git commit -m "注釋"  ,git push  , git pull              git status   查看本地版本庫的狀態 ,有沒有未跟蹤,修改未提交,提交未推送到遠程庫的信息全部會顯示。                                    如果要看想提交的文件和庫里的有什么不同,git diff 【文件名】 可以對比文件             git add   【文件名  空格  文件名  】 或者 .(點,代表跟蹤的 所有文件)  將文件從工作區添加到暫存區。             git  commit   提交到本地庫              git push 把本地已經提交的記錄,推送到遠程庫。             git  pull  從遠程庫拉取別人更新的代碼        在四個區域轉換修改有用的命令:             git reset --hard  HEAD^     回退到上個提交的版本  也可以吧HEAD^用commit_id替換  ,可以用git log 查看日志記錄中的commit_id             如果有add了的但又不想提交的怎么辦呢,得使用 git reset  HEAD【全路徑文件名】 把不想提交的從暫存區拉到工作區才行。             工作區的代碼不要了,讓本地庫中的代碼覆蓋,重新寫,用git  checkout   【文件名】 撤銷工作區的修改,重新開始。             當我在編寫ATask任務,想干其他模塊的工作BTask ,暫存區的工作內容保存起來,然后回到代碼庫的代碼,想用的時候再恢復過來。                                用 git stash  所有工作區的修改ATask 暫時存儲,且工作區恢復到修改之前了。                                BTask 其他模塊編寫完畢,提交后,想把ATask恢復到工作區,git  stash pop  恢復。                  當然可以暫存很多這種任務,可用git  stash list 查看任務。                  想恢復其中一個而不是最上面的一個時 用 git stash  apply  [名稱,通常為stash@{0}]             現在我有一系列的未跟蹤的文件(未被放到工作區),想刪掉,可用 git clean -f                                   連同目錄一起刪除 git  clean -fd                  連.gitignore文件中標明的目錄也刪掉,呃,當然這個一般別用,git clean -xfd                  以上三個命令 參數都可加上-n,先查看哪些文件要刪除,會先列出個列表 , git  clean -nf   ,git clean -nfd  , git  clean -nxfd                   好了,3,4,5點都是針對單個分支的操作,下面來講一下多個分支的基本操作:      分支的操作:                      新建一個分支 :git branch  【分支名A】 ,這個是以當前分支為基礎,比如當前分支在master,A分支就是master的一個副本                           還可以git branch -b  [分支名A]  創建並切換到分支A             刪除分支  : git  branch -d 【分支名A】             合並分支:git merge  master  , 假設當前分支為A ,把master分支代碼合並到A分支。                  分支合並並記上日志:git merge  --no-ff  -m "分支合並日志記錄"  master             查看分支合並圖 : git  log  -graph                   查看所有分支的日志 :git relog        遠程推送操作:                 把遠程代碼拉到本地 git clone  git.oschina.net@fubin/fubin.git        刪除遠程分支:本地分支刪除了之后,如果已經推送到遠程,我們得刪除遠程分支 :git push origin   :A                                這個方法是把一個空的名字的分支推送到遠程並覆蓋A,就刪除了。            那我們怎么提交代碼或者推送建好的分支到遠程呢:             (1)如果已經關聯好了,直接git push                  (2)遠程有,沒關聯好,git push -u origin/remote_branch                  (3)遠程沒有,需要新建一個推送,git push origin local_branch:remote_branch        (3)的另一種方法,假如我們有一個本地庫,一個遠程庫,想關聯起來,git remote add origin  git.oschina.net@fubin/fubin.git              遇到的一些問題匯總:           《1》  提交代碼的時候需要輸入密碼,可長期存儲密碼配置:git  config  --global  credential.helper store           《2》  日志漂亮的配置:                git log --pretty=oneline   單行顯示日志                別名配置:git lg  樹形結構顯示日志,很方便。                git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"                其實這些配置都記錄在.gitconfig  文件中:部分內容如下: [color]     diff = auto     status = auto     branch = auto [user]     name = fubin     email = 1401626753@qq.com [gui]     encoding = utf-8     recentrepo = E:/Workspace/vpfinance [push]     default = matching [credential]           helper = store   [alias]     lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit           《3》  以master為模板創建遠程分支過程:                 1. 創建分支 git branch -b  A   2 git push origin A:A             《4》  新建一個項目,push到遠程步驟:                  1. 本地新建項目    2. 新建本地倉庫 並git init  3 .遠程新建項目  4.本地和遠程建立關聯 git remote add origin  git.oschina.net@fubin/fubin.git  5.拷貝本地項目到本地倉庫 6.提交           《5》  如何忽略已跟蹤的文件?                git update-index  --assume-unchanged filename                撤銷忽略:                git update-index  --no--assume-unchanged filename           《6》  刪除已經入庫的文件夾,這個是直接刪除遠程庫,本地庫也一起刪除,需要小心操作。                 git rm -f --cached .idea/                git commit -m "刪除已入庫的文件夾"           《7》  git的維護(git gc 和 git fsck)                git fsck 運行一些倉庫的一致性檢查, 如果有任何問題就會報告. 這項操作也有點耗時, 通常報的警告就是“懸空對象"(dangling objects).           《8》  git push 時報錯  error: cannot lock existing info/refs                 在環境中執行 git update-server-info    后解決問題                      《9》  提示出錯信息:fatal: remote origin already exists.                 刪除遠程分支關聯:                 git remote rm origin                                                                                                                                                                                           

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com