查看手冊
如:git help log
或者git log --help
創建倉庫的兩種方式
-
本地初始化
cd到目標文件夾下,執行
git init
。跟遠程建立連接
git remote add <name> <url>
name一般是取origin。 -
克隆遠程倉庫到本地
git clone <url>
git clone默認會把遠程倉庫整個給clone下來,
但只會在本地默認創建一個master分支,
如果遠程還有其他的分支,此時用git branch -a查看所有分支。
可以用git checkout -t origin/<branch_name>
來拉取某個分支。
查看倉庫狀態
git status
Untracked files指未受控的文件。
Changes to be committed指受控文件發生了改變,還沒commit。
添加文件到暫存區
git add
git add FileName
add文件。
git add FolderName/
add文件夾。
提交
git commit -m "add readme.txt"
。
提交修改分為兩步,先把修改的文件add到暫存區,然后commit到倉庫。如果有遠程倉庫的話,還要push到遠程倉庫。
查看提交記錄
git log
要輸入一個q
才能退出log的狀態。
git log --pretty=oneline
單行顯示,簡寫git log --oneline
。
git log -p a.txt
查看a.txt的log。
git log --author=Tom
查看提交人Tom的提交記錄。
撤銷修改
git checkout readme.txt
checkout是指還沒有commit的修改想要撤銷掉。而如果commit了的修改想要撤銷就要用reset了。
checkout某個文件是讓那個文件回到倉庫里HEAD的狀態。
如果是用慣了svn的同學可能會想著先把那個文件刪掉,再從倉庫里拉取最新代碼就行。在git里是不適用的哦。
回退版本
git reset --hard HEAD^
回退到上個版本。
git reset --hard HEAD~n
回退到前n次提交之前。
git reset --hard commit_id
退到/進到 指定commit的sha碼。
推送本地修改到遠程倉庫
git push
,某些情況下你需要指定遠程倉庫的名字和分支,如git push origin master
。
拉取遠程的最新代碼
git pull
配置賬戶
git config --system --list
git config --global --list
git config --local --list
git config --local user.name "xxx"
git config --local user.email "xxx"
git clean
刪除未受控的文件:git clean -f
刪除未受控的文件和目錄:git clean -fd
查看將要刪除哪些文件:git clean -nf
查看將要刪除哪些文件和目錄:git clean -nfd
公鑰管理
ssh-keygen -t rsa -C "yourEmail@xxx.com"
。
然后會讓你選擇存放路徑和輸入密碼,可以直接按回車。
然后就會生成兩個文件,一個id_rsa,一個id_rsa.pub。
拷貝id_rsa.pub里面的內容,粘貼到github或者gitee里。
添加成功后,輸入ssh -T git@gitee.com
來測試是否可以正常連接。
rebase配合merge使用
多人協作的話需要分支,分支上開發一個功能完成后需要合并到主干上,但是主干上不想要多余的提交記錄。此時,可以使用變基。過程大概是這個樣子。
git branch dev
git switch dev
//modify sth
git commit -m 'dev 1'
//modify sth
git commit -m 'dev 2'
git rebase -i startpoint endpoint//不寫endpoint的話就是HEAD
//select pick reword fixup and so on
git switch master
git merge dev