git常用使用命令个人总结
git pull 用于從遠程獲取代碼并合并本地的版本,其實就是 git fetch 和 git merge FETCH_HEAD 的簡寫
git stash 所有未提交的修改(工作區和暫存區)保存至堆棧中,用于后續恢復當前工作目錄
git stash list 查看當前stash中的內容
git stash pop 將當前stash中的內容彈出,并應用到當前分支對應的工作目錄上。該命令將堆棧中最近保存的內容刪除(棧是先進后出)
git branch -r 查看遠程所有分支
git branch -a 查看本地和遠程所有分支
git remote -v 列出存在的遠程倉庫
添加遠程倉庫到本機
git remote add pd git://githup.com/paulbooner/ticgit.git
origin git://github.com/schacont/ticgit.git
pd git://github.com/paulboone/ticgit.git ?可以用字符串pd指代對應倉庫地址;
可以抓取所有Paul有的,本地倉庫沒有的信息,可以運行
git fetch pd
remote: Counting objects: 58, done.
remote: Compressing objects: 100% (41/41), done.
remote: Total 44 (delta 24), reused 1 (delta 0)
Unpacking objects: 100% (44/44), done.
From git://github.com/paulboone/ticgit
* [new branch] master -> pb/master
* [new branch] ticgit -> pb/ticgit
顯示遠程信息
git remote show origin
git branch -vv?
查看本地分支和遠程分子的映射關系
建立分支的映射
將當前分支映射到遠程的指定分子,注意切換到當前分支
git branch -u origin/遠程分支
git cherry-pick <commitHash>
上面命令就會將指定的提交commitHash,應用于當前分支。這會在當前分支產生一個新的提交,當然它們的哈希值會不一樣。
舉例來說,代碼倉庫有master和feature兩個分支。
? ? a - b - c - d ? Master
? ? ? ? ?\
? ? ? ? ? ?e - f - g Feature
現在將提交f應用到master分支。
上面代碼表示將feature分支的最近一次提交,轉移到當前分支。
# 切換到 master 分支
$ git checkout master
# Cherry pick 操作
$ git cherry-pick f
上面的操作完成以后,代碼庫就變成了下面的樣子。
? ? a - b - c - d - f ? Master
? ? ? ? ?\
? ? ? ? ? ?e - f - g Feature
從上面可以看到,master分支的末尾增加了一個提交f。
git cherry-pick命令的參數,不一定是提交的哈希值,分支名也是可以的,表示轉移該分支的最新提交。
本地master分支推送到origin主機的master分支
git push origin master
想等同于 git push origin master:master
手動創建分支方法
創建一個分支
執行 git branch (branchname) 即可
$ git branch testing
$ git branch
* master
? testing
git checkout master 切換分支到master
也可以使用 git checkout -b (branchname) 命令來創建新分支
并立即切換到該分支下
刪除分支?
git branch -d (branchname)
git add 添加所有改動內容
git add -A . ?點一次添加所有改變的文件
git add -A 添加所有內容
git add . ?點表示添加新文件和編輯過的文件,但不包括刪除的文件
git add -u ?表示添加編輯或者刪除的文件,不包括新添加的文件
沖突的解決辦法
在git中,可以使用 git add 告訴git 文件沖突已經解決
沖突方法的總結
git checkout master
Switched to branch 'master'
現在這些改變已經記錄到我的 "master" 分支了。接下來我們將 "change_site" 分支合并過來。
git merge change_site
當前的分支是master,將 change_site 分支合并過來
Auto-merging runoob.php
CONFLICT (content): Merge conflict in runoob.php
Automatic merge failed; fix conflicts and then commit the result.
$ cat runoob.php ? ? # 打開文件,看到沖突內容
<?php
<<<<<<< HEAD ? ?當前的分支名
echo 1;
=======
echo 'runoob';
>>>>>>> change_site ? ?合并過來的分支名
?>
我們將前一個分支合并到 master 分支,一個合并沖突就出現了,接下來我們需要手動去修改它。
vim runoob.php?
$ cat runoob.php
<?php
echo 1;
echo 'runoob';
?>
$ git diff
diff --cc runoob.php
index ac60739,b63d7d7..0000000
--- a/runoob.php
+++ b/runoob.php
@@@ -1,3 -1,3 +1,4 @@@
? <?php
?+echo 1;
+ echo 'runoob';
? ?>
??
在 Git 中,我們可以用 git add 要告訴 Git 文件沖突已經解決
$ git status -s
UU runoob.php
$ git add runoob.php
$ git status -s
M ?runoob.php
$ git commit
[master 88afe0e] Merge branch 'change_site'
現在我們成功解決了合并中的沖突,并提交了結果。
git clean -n ?
查看將要被刪除的文件,并不實際刪除文件
刪除當前工作目錄下的未跟蹤文件,但不刪除文件夾運行
git clean -f?
刪除當前工作目錄下的未跟蹤文件及文件夾運行
git clean -df
執行 git reset HEAD 以取消之前 git add 添加
git命令用法還是有很多,需要不斷總結
總結
以上是生活随笔為你收集整理的git常用使用命令个人总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为数通笔记-VRF
- 下一篇: 惠普计算机硬盘序列号怎么查询,硬盘序列号