ubantu下git的連接和使用


本文整理了Ubuntu下git的一些常用操作命令清單,方便以后查閱。學習網站參考廖雪峰老師網站

操作命令

創建倉庫,並提交一個readme文件。

sudo apt-get install git

mkdir mygit

cd mygit

git init

git config --global user.email "angiing.ooe@gmail.com"

git config --global user.name "zltingg"

vi readme.txt

git add readme.txt

git commit -m "wrote a readme file."

文件改動怎么辦

git status隨時掌握工作區的狀態,告訴你有文件被修改過

git diff查看文件修改內容

git log git log --pretty=oneline顯示從最近到最遠的提交日志

版本回退

git reset --hard commit_id允許我們在版本的歷史之間穿梭(commit后沒有推到遠程庫), HEAD指向的版本就是當前版本,HEAD^指向上一個版本

git reflog查看命令歷史,以便確定要回到未來的哪個版本

版本庫(Repository)

工作區有一個隱藏目錄.git,這個不算工作區,而是Git的版本庫。

Git的版本庫里存了很多東西,其中最重要的就是稱為stage(或者叫index)的暫存區,還有Git為我們自動創建的第一個分支master,以及指向master的一個指針叫HEAD

git diff HEAD -- readme.txt命令可以查看工作區和版本庫里面最新版本的區別

撤銷修改

git checkout -- readme.txt丟棄工作區文件的修改

git reset HEAD readme.txt可以把暫存區的修改撤銷掉(unstage),重新放回工作區

刪除文件

rm test.txt刪除test文件

git rm test.txt刪除版本庫中的這個test文件

或者git checkout -- test.txt恢復誤刪

git checkout本質是用版本庫里的版本替換工作區的版本

遠程倉庫

  1. 在/home/zlt下面創建SSH Key:ssh-keygen -t rsa -C "angiing.ooe@gmail.com",兩次回車后要求輸入密碼(至少5位),輸入兩次密碼后創建SSH Key完成。

在/home/zlt/.ssh中出現id_rsa和 id_rsa.pub文件即為創建成功。

  1. 在GitHub下添加SSH Key的公鑰,填上任意Title,在Key文本框里粘貼id_rsa.pub文件的內容。

    如果有若干電腦,只要把每台電腦的Key都添加到GitHub,就可以在每台電腦上往GitHub推送了。

添加遠程庫

本地有一個倉庫,想要在GitHub上同步這個倉庫。

步驟:

  1. 新建一個倉庫,設置Repository name為mygit(與本地庫相同)
  2. git remote add origin git@github.com:zltingg/mygit.git關聯遠程庫,遠程庫的名字就是origin
  3. git push -u origin master第一次推送master分支的所有內容

如果推送失敗,可以檢查一下github上settings-Emails的設置,把Keep my email address private取消勾選。

先創建遠程庫,再從遠程庫克隆。(常用)

在用戶主目錄下執行git clone git@github.com:zltingg/gitskills.git

分支管理

創建切換

查看分支:git branch

創建dev分支:git branch dev

切換到master分支:git checkout master

創建+切換到dev分支:git checkout -b dev

合並dev分支到當前master分支:git merge dev(fast forward看不到合並歷史)

git merge --no-ff -m "merge with no-ff" dev可以看到合並歷史

刪除dev分支:git branch -d dev

git branch -D dev強行刪除沒有被合並過的dev分支

沖突

  1. 本地兩個分支對同一文件作修改並提交,merge時產生沖突:

    手動修改沖突文件,再提交,再刪除小分支,再push。

    git log --graph --pretty=oneline --abbrev-commit查看分支合並的情況。

解決bug

  1. git stash把當前工作現場存起來
  2. 通過創建新的bug分支修復bug,然后合並,最后刪除
  3. git stash list 查看工作現場存到哪兒了
  4. git stash pop恢復現場並刪除stash內容

多人協同

  1. 首先,可以試圖用git push origin <branch-name>推送自己的修改;
  2. 如果推送失敗,則因為遠程分支比你的本地更新,需要先用git pull試圖合並;
  3. 如果合並有沖突,則解決沖突,並在本地提交;
  4. 沒有沖突或者解決掉沖突后,再用git push origin <branch-name>推送就能成功!

如果git pull提示no tracking information,則說明本地分支和遠程分支的鏈接關系沒有創建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>

查看遠程庫信息,使用git remote -v

在本地創建和遠程分支對應的分支,使用git checkout -b branch-name origin/branch-name,本地和遠程分支的名稱最好一致

rebase

git rebase把本地未push的分叉提交歷史整理成直線

標簽管理

創建標簽

發布一個版本時,我們通常先在版本庫中打一個標簽(tag):

git tag <tagname>用於新建一個標簽,默認為HEAD,也可以指定一個commit id

git tag -a <tagname> -m "blablabla..."可以指定標簽信息

git tag可以查看所有標簽

刪除標簽

  • 命令git push origin <tagname>可以推送一個本地標簽;
  • 命令git push origin --tags可以推送全部未推送過的本地標簽;
  • 命令git tag -d <tagname>可以刪除一個本地標簽;
  • 命令git push origin :refs/tags/<tagname>可以刪除一個遠程標簽。

配置別名

git config --global alias.lg "log --graph --pretty=oneline --abbrev-commit"以后輸入git lg就可以查看commit歷史。

用戶主目錄下vi .gitconfig可查看alias.的內容

忽略特殊文件

問題:把某些文件放到Git工作目錄中,但又不能提交它們,比如保存了數據庫密碼的配置文件。

解決方法:在Git工作區的根目錄下創建一個特殊的.gitignore文件,然后把要忽略的文件名填進去,Git就會自動忽略這些文件。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM