Git常用命令學習筆記
(1)安裝Git
1、Linux下
先運行git看看當前有沒有安裝,大多數Linux會有很友好的提示信息告訴你安裝Git的命令。比如Debian或Ubuntu Linux,通過一條sudo apt-get install git就可以安裝,比較老的版本則運行sudo apt-get install git-core。
2、Windows下
直接在官網下載安裝程序https://git-scm.com/downloads。按照默認安裝,安裝完成後在安裝目錄打開git-bash.exe(一個命令行工具)即可直接操作Git。
安裝完成後運行
git config --global user.name "your name"
git config --global user.email "[email protected]"
全局設置用戶名和e-mail
(2)常用命令
常規操作
git init 初始化一個倉庫
git add <file> 將修改添加到暫存區,可同時添加多個
git rm <file> 提交一個刪除文件操作到暫存區
git commit 提交
git status 查看工作區狀態
git diff 查看修改內容
git reset --hard commit_id 切換版本,HEAD指向當前版本,HEAD^指向上個版本,HEAD^~20前二十個版本
git log 查看提交歷史
git reflog 查看命令歷史(切換打未來版本是用於查看未來版本的commit_id)
git checkout -- file 丟棄工作區的修改
git reset HEAD file 丟棄暫存區的修改
遠程庫操作
git remote add <自定義倉庫名> git@server-name:path/repo-name.git SSH方式關聯一個遠程庫
git push -u origin <本地分支名> 關聯後,第一次推送master分支的所有內容,第一次推送後,後面的推送可以去掉 -u
git branch --set-upstream <本地分支名> origin/<遠程分支名> 建立本地分支與遠程分支的關聯關系
git checkout -b <本地分支名> origin/<遠程分支名> 將遠程庫裏的指定分支拉取到本地(本地不存在該分支),該操作將會在本地新建一個分支並與遠程庫的該分支關聯起來,本地分支名最好與遠程分支名保持一致。
git pull <遠程庫名> <遠程分支名>:<本地分支名> 從遠程庫獲取某個分支的更新,並與本地指定分支進行快速(fast_forward,不會留下記錄)merge,如果與本地當前分支merge,則冒號後面的內容可以省略,當push時,遠程分支的內容比本地新的時候,也需要執行本操作。
git fetch <遠程庫名> <遠程分支名>:<本地分支名> 從遠程庫獲取代碼,與pull不同的是,不會自動merge,因此fetch到一個已經存在的分支時會報錯
git clone git@server-name:path/repo-name.git 克隆一個倉庫
git clone https://github.com/<user-name>/<repo-name>.git 這種格式為https協議的方式,Git支持多種協議,SSH協議的速度快
分支操作
git branch 查看分值,帶 * 表示當前分支
git branch <name> 創建分支
git checkout <name> 切換分支
git checkout -b <name> 創建並切換分支
git merge <name> 合並某分支到當前分分支
git branch -d <name> 刪除分支,刪除一個沒有合並過的分支使用-D屬性
git log --graph 查看分支合並圖
git log --graph --pretty=oneline --abbrev-commit 查看簡潔的分支合並圖
git merge --no-ff -m "****" <branch> --no-ff參數就可以用普通模式合並,合並後的歷史有分支,能看出來曾經做過合並,而fast forward
合並就看不出來曾經做過合並。禁用fast forward後Git就會在merge時生成一個新的commit,所以需要 -m 添加備註信息。
* git stash 把當前工作現場“儲藏”起來,包括工作區和暫存區沒有commit的所有內容
git stash list 查看“儲藏”的工作目錄列表
git stash apply 恢復到指定的工作目錄
git stash drop 刪除指定的工作目錄
* git stash pop 從“儲藏”的工作取出最近的工作目錄,並刪除,相當於上面兩條命令
標簽管理
git tag <tag_name> 在當前分支打一個新標簽
git tag 查看所有標簽
git tag <tag_name> <commit_id> 在指定commit處打一個標簽
git tag -a <tag_name> -m <comment_content> <commit_id> 創建一個帶說明的標簽
git show <tag_name> 查看標簽詳細信息
git tag -d <tag_name> 刪除本地標簽
git push <倉庫名> :/refs/tags/<tag_name> 從遠程倉庫刪除指定標簽
git push <倉庫名> <tag_name> 推送指定標簽到遠程倉庫
git push <倉庫名> --tags 一次性推送所有尚未推送的標簽
多人協作
查看遠程庫信息 git remote -v
本地新建的分支如果沒有推送到遠程,對別人是不可見的。
從本地推送分支使用 git push origin <本地分支名> ,如果推送失敗,使用 git pull 抓取遠程的新提交,如有沖突,先解決沖突,如果提示no tracked則表示本地分支沒有與遠程建立關聯,直接添加 -u 參數或者 git branch --set-upstream <本地分支名> <遠程庫名>/<遠程分支名> 建立關聯。
從本地創建遠程倉庫對應的分支,使用 git checkout -b <本地分支名> <遠程庫名>/<遠程分支名>
Git常用命令學習筆記