git命令筆記

0、git管理的是修改而不是文件!git

一、在 git Bash 上設置用戶名和emailgithub

git config --global user.name "Cai"
git config --global user.email "你的郵箱"
查看:git config --list

二、在空白目錄 「test」 下建立git倉庫,(test文件夾就是工做區)shell

git init

三、將倉庫目錄下的文件 test.txt 添加到暫存區緩存

git add test.txt
git add .    //添加所有到暫存區

四、將暫存區下的文件提交到當前分支bash

git commit -m "提交的描述"

五、查看倉庫中文件的狀態: 是否有文件改動了、是否有 add 過的文件服務器

git status

六、查看文件具體修改的內容app

git diff test.txt

七、當前版本出錯,想要版本回退時從版本日誌中尋找合適的版本,打印版本日誌:ssh

git log

八、回退到以前的版本fetch

git reset --hard HEAD^        //回退到前一個版本
git reset --head 1094a        //根據commit id回退到指定版本(commit id寫前幾位就好)
git reset --hard HEAD~10        //HEAD~後面的數字10表示回退到上十個版本

九、回退到以前版本後後悔了,再變回來必須知道該版本的commit id網站

git reflog    //查看命令記錄
git reset --hard 1094a    //回退到指定版本
cat test.txt    //查看該文件內容

十、撤銷工做區的修改(沒有添加到暫存區)

git checkout -- test.txt    //撤銷對test.txt的修改

十一、撤銷暫存區的修改

git reset HEAD test.txt    //撤銷對暫存區中test.txt的修改

十二、從版本庫中刪除文件

git rm test.txt
git commit -m "刪除了test.txt文件"
若是誤刪:git checkout -- test.txt    //還原

1三、如何將本地git倉庫上傳至GitHub

一、打開GitBash輸入: ssh-keygen -t rsa -b 4096 -C "郵箱@qq.com"    //生成公鑰和私鑰(cat 目錄 複製)
二、登陸你的GitHub,並在設置中添加 SSH keys ,放入公鑰。
三、在GitHub中新建一個空倉庫,倉庫建好後能夠選擇其列出的第二項推送本地倉庫的方式。
四、詳細參考連接: https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013752340242354807e192f02a44359908df8a5643103a000

1四、多人協做時從GitHub遠程庫克隆倉庫

git clone git@github.com:GithubName/test.git

1五、多人協做時,採用分支管理: 建立不一樣的分支,每一個人在不一樣的分支上工做,最後合併分支。

git branch    //查看分支
git branch name    //建立分支
git checkout name    //切換分支
git checkout -b name    //建立並切換分支
git branch -d name    //刪除分支(只能刪已完成合並的分支)
git branch -D name    //強行刪除分支(刪未合併的分支)
git merge name    //合併 name 分支到當前分支
git merge --no-ff -m "這裏合併了dev分支" dev    //使用普通模式合併分支,使其有據可查
git log    //查看分支歷史
//同一段內容在不一樣分支上不一致時沒法合併分支,先解決衝突後再合併,而後刪除建立的分支
//master分支是主分支,一般不直接在主分支上修改,而僅用來發布新版本
//可建立一個dev分支,全部人都在dev分支上建立本身的分支,全部修改都提交到dev分支,最終將dev分支做爲新版本提交到master分支

1六、暫存未完成修改的分支

git stash    //工做只進行到一半無法提交時,先把工做現場存起來,下次再作
git stash list    //查看保存的工做區列表
git stash pop    //恢復工做區並刪除暫存的stash
git stash apply    //恢復工做區,不刪stash
git stash drop    //刪除stash
//好比是在dev分支上建立的工做分支,則到dev分支上恢復工做區

1七、多人協做時,使用遠程分支

git remote    //查看遠程庫,能夠看到遠程庫名字,默認名:origin
git remote -v    //查看遠程庫詳細信息,顯示能夠抓取和推送的origin的地址
git push origin master    //推送本地主分支(master)到遠程分支(origin)
git push origin dev    //推送本地開發分支(dev)到遠程分支
//一般須要推送主分支和開發分支到遠程分支中,而每一個人基於開發分支本身建立的工做分支,視狀況推送。

抓取遠程分支時,只能clone主分支master,若是要在dev分支工做就須要建立遠程dev分支到本地
git checkout -b dev origin/dev    //在本地建立遠程的dev分支,而後就能夠在dev分支建立本身的工做分支了
git push origin dev    //時不時推送dev分支到遠程

1八、若是向遠程分支推送失敗

//若是推送失敗,由於你試圖推送的提交與你的小夥伴的提交衝突了。
git pull    //把最新的提交抓下來,而後在本地合併,解決衝突後再推送
git branch --set-upstream-to=origin/dev dev    //若是git pull 失敗,可能忘了設置dev分支與遠程dev分支的連接
// 再git pull ,而後推送,合併分支

1九、標籤管理

//爲了方便管理,能夠爲每次提交打一個標籤,好比版本號
git tag v1.0    //爲當前分支建立標籤
git tag    //查看全部標籤
git tag v0.9 0536a    //若是忘了打標籤,能夠指定使用git log查到該分支版本的 commit id 打標籤
git show v1.0    //顯示標籤信息
git tag -a v1.0 -m "標籤描述" 03366b    //建立帶說明的標籤

//標籤都是建立在本地的,不會自動推送到遠程
git tag -d v1.0    //刪除本地標籤
git push origin v1.0    //推送一個標籤到遠程
git push origin --tags    //推送全部本地標籤到遠程
git push origin :refs/tags/v1.0    //刪除遠程標籤   
git push --delete origin test    //刪除遠程分支

20、使用碼雲

//碼雲是國內的Git託管服務平臺,和Git不一樣的是碼雲能夠提供免費的私有倉庫,而Git的私有倉庫是收費的。
//和GitHub同樣,註冊碼雲並添加公鑰後在碼雲建立一個項目,而後使用下面的命令關聯碼雲的遠程庫
git remote add gitee git@gitee.com:cai/testgit.git    //注意碼雲的遠程庫是 gitee 而不是origin(可使用 git push gitee master 推送了)
git remote -v    //查看遠程庫信息
git branch -r    //查看遠程分支
git branch -vv    //查看本地分支所關聯的遠程分支
git branch -m old new    //重命名本地分支
git remote rm origin    //刪除origin遠程庫(origin是GitHub的遠程庫)
git remote add github git@github.com:OnlyChangeMyself/test.git    //從新關聯GitHub的遠程庫,此時GitHub的遠程庫叫github了而不是origin(可使用git push github master)

2一、配置別名

git config --global alias.sta status    //使用git sta就等於git status了
git config --global alias.cmt commit    //git cmt等於git commit
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"    //git lg

2二、搭建Git服務器

//其實就是搭建私有倉庫
//推薦使用Linux服務器如Ubuntu或Debian
//假設你有sudo權限的帳號
第一步:sudo apt-get install git    //安裝Git
第二步:sudo adduser git    //建立一個Git用戶,用來運行Git服務
第三步:建立證書登陸:///收集全部須要登陸的用戶的公鑰,就是他們本身的id_rsa.pub文件,把全部公鑰導入到/home/git/.ssh/authorized_keys文件裏,一行一個
第四步,初始化Git倉庫://先選定一個目錄做爲Git倉庫,在該目錄下輸入命令(好比目錄:/srv):
sudo git init --bare sample.git
sudo chown -R git:git sample.git
第五步:禁用shell登陸,經過編輯/etc/passwd文件完成
git:x:1001:1001:,,,:/home/git:/bin/bash
改成:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
第六步,克隆遠程倉庫:
git clone git@server:/srv/sample.git

2三、參考自

[廖雪峯的官方網站][1]

2四、抓取遠程分支覆蓋本地分支

git fetch --all 
git reset --hard origin/master

2五、修改gitignore配置文件後生效方法

git rm -r --cached .    //清除緩存
git add .
git commit -m "提交描述"
git push origin master    //提交到遠程
相關文章
相關標籤/搜索